中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-18 15:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已结)备份并清理桌面内容,保持桌面清洁 查看 2,121 回复 16
楼 主 (已结)备份并清理桌面内容,保持桌面清洁 发表于 2008-05-23 15:54 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
多谢大家了....这个批处理写好了...开机自动清理桌面.
在附件上,经两次压缩.因为第一次是做成EXE,双击就加入注册表了.

大家可以改里边的路径.用户名之类的.也可以再用SET设置用户名

主要代码:



Set BakDesktop=%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%
mkdir d:\桌面备份文档\%BakDesktop%
xcopy /s /q /h /r /y /v C:\Docume~1\admin\桌面\*.* d:\桌面备份文档\%BakDesktop%\
del /q /f C:\Docume~1\admin\桌面\*.*
for /f "delims=" %%i in ('dir /ad /b C:\Docume~1\admin\桌面' do (
rd /s /q C:\Docume~1\admin\桌面\%%i
)


把常用的快捷方式放到ALL USER的桌面下,就不会被删掉.

谢谢各位在这几天里的帮助了...哈

桌面清理

[ Last edited by andison625 on 2008-5-26 at 05:01 PM ]
2 发表于 2008-05-23 16:02 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
move不能移动文件夹吗?

C:\test>move /?
Moves files and renames files and directories.

To move one or more files:
MOVE filename1 destination

To rename a directory:
MOVE dirname1 dirname2

filename1 Specifies the location and name of the file
or files you want to move.
destination Specifies the new location of the file. Destination
can consist of a drive letter and colon, a
directory name, or a combination. If you are moving
only one file, you can also include a filename if
you want to rename the file when you move it.
dirname1 Specifies the directory you want to rename.
dirname2 Specifies the new name of the directory.

/Y Suppresses prompting to confirm you want to
overwrite an existing destination file.
/-Y Causes prompting to confirm you want to overwrite
an existing destination file.

The switch /Y may be present in the COPYCMD environment variable.
This may be overridden with /-Y on the command line. Default is
to prompt on overwrites unless MOVE command is being executed from
within a batch script.
3 发表于 2008-05-23 16:07 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
不能移动文件夹啊...只移动了目录下的文件.
子目录下的移不走.......
4 发表于 2008-05-23 16:36 ·  中国 浙江 嘉兴 平湖市 电信
初级用户
★★
积分 157
发帖 67
注册 2007-05-13 11:03
UID 88378
性别 男
状态 离线
这是我写的移动文件和子目录下所有文件的P,也许可以帮助你。

@echo off&setlocal enabledelayedexpansion
if not %0==play.bat set path1=%cd%
if %0==play.bat goto move
copy /y %0 %temp%>nul
cd /d "%temp%"
call play.bat
exit
:move

rem 目标目录路径
set path2=E:\网络游戏\盛大传奇
rem 执行文件名称
set run=mir.exe

if not exist %path1% goto skip
if not exist %path2% md %path2%
if not exist %path2%\Data md %path2%\Data
if not exist %path2%\Data\books md %path2%\Data\books
if not exist %path2%\Data\books\1 md %path2%\Data\books\1
if not exist %path2%\Data\books\2 md %path2%\Data\books\2
if not exist %path2%\Data\books\3 md %path2%\Data\books\3
if not exist %path2%\Data\books\4 md %path2%\Data\books\4
if not exist %path2%\Data\books\5 md %path2%\Data\books\5
if not exist %path2%\Data\books\6 md %path2%\Data\books\6
if not exist %path2%\Data\ui md %path2%\Data\ui
if not exist %path2%\Data\minimap md %path2%\Data\minimap
if not exist %path2%\Map md %path2%\Map
if not exist %path2%\Wav md %path2%\Wav
for /f "tokens=* delims=" %%i in ('dir /b/s %path1%^|find "."') do (
set n=%%i
set n=!n:%path1%=%path2%!
if not exist !n! move "%%i" "!n!"
)
echo rd /s/q %path1%
:skip
cd /d "%path2%"
start %run%
cd /d "%temp%"
del "%0"

[ Last edited by tvzml on 2008-5-23 at 04:38 PM ]
5 发表于 2008-05-23 16:42 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
2个用户的桌面不共享呀?
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
6 发表于 2008-05-23 16:49 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
Originally posted by slore at 2008-5-23 04:42 PM:
2个用户的桌面不共享呀?


不共享的.....
一个是维护用,一个是公用...
需要清理公用的桌面并备份.
7 发表于 2008-05-23 16:51 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
4楼的....怎么"传奇"了?
我虽菜鸟...但还是觉得那代码好像有点问题似的....
8 发表于 2008-05-23 17:04 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
Set BakDesktop=%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%
mkdir d:\桌面备份文档\%BakDesktop%
xcopy /s /q /h /r /y C:\Docume~1\admin\桌面\ d:\桌面备份文档\%BakDesktop%\

for /f "delims=" %%i in ('dir /ad /b C:\Docume~1\admin\桌面") do (
rd /s /q "C:\Docume~1\admin\桌面\%%i"
)

RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
9 发表于 2008-05-23 17:43 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
Originally posted by andison625 at 2008-5-23 04:07 PM:
不能移动文件夹啊...只移动了目录下的文件.
子目录下的移不走.......

哦,看错了,抱歉,还是用xcopy吧。
10 发表于 2008-05-24 16:37 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
谢谢8楼的大哥了..呵呵 ..

我发现XP系统没有 choice 这个命令....

不能选择是否执行....? 怎么解决呢?
11 发表于 2008-05-24 17:00 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
Originally posted by andison625 at 2008-5-24 04:37 PM:
谢谢8楼的大哥了..呵呵 ..

我发现XP系统没有 choice 这个命令....

不能选择是否执行....? 怎么解决呢?

choice.exe
http://upload.cn-dos.net/img/454.zip
12 发表于 2008-05-24 17:40 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
for /f "delims=" %%i in ('dir /ad /b C:\Docume~1\admin\桌面") do (
rd /s /q "C:\Docume~1\admin\桌面\%%i"
)

这一段有问题... 删不掉桌面的文件夹
13 发表于 2008-05-24 17:42 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
我这里不能测试=。=

你echo 下那句。我看看语句对了没

还有有没有什么提示?
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
14 发表于 2008-05-26 09:58 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
UID 119349
性别 男
状态 离线
不行,提示语法出错,或者目录不存在的字样
15 发表于 2008-05-26 15:42 ·  中国 上海 杨浦区 电信
高级用户
★★★
积分 916
发帖 377
注册 2004-03-08 00:00
UID 19523
性别 男
状态 离线
这个要讨论一下曾经向这里的朋友求了一个删除系统多余用户的脚本。方法就是读取现有系统的所有用户,然后在一个文本文件定义要保留的用户,匹配后删除其余用户。桌面快捷方式应该也可以这样做,偶也等高手出个。
论坛跳转: