1、编写批处理清空临时文件
@echo off
cd %Temp%
for /d %%d in (*) do rd /s /q "%%d"
del /f /q *.*
2、echo命令
功能:打开或关闭命令回显
语法:echo [on|off] [message]
参数:on—打开命令回显;off—关闭命令回显
特殊用法:【echo】 不带任何参数将显示当前回显设置
【echo.】显示一个空行
【@echo off】:关闭所有命令(包括这条命令)的回显
【echo off】:关闭其他所有命令(不包括这条命令)的回显
【@】:关闭紧跟其后的一条命令的回显
3、cd(chdir)命令
(1)功能:显示当前目录的名称或更改当前目录
(2)语法:cd [[/d] [drive:][path] [..]]
(3)参数:/d 更改当前驱动器或驱动器的当前目录
.. 要从子目录切换到它的上级目录(例:“cd ..”或“cd..”)。
(4)特殊用法:“cd”不带任何参数将显示当前驱动器和目录(目录的名称)。“cd/”更改到根目录。
4、dir命令
功能:列出目录和文件
参数:【/p】:分页显示,p-page
【/a】:显示指
定属性的文件。d-目录,r-只读,h-隐藏,a-存档,s-系统,【
-】表示“否”的前缀
【/b】:使用空格式,没有标题信息或摘要
【/o】:用分类
显示文件,n-按名称(字母顺序),s-按大小(从小到大),e-按
扩展名(字母顺序),d-按日期/时间,-颠倒顺序
5、支持参数的文件清单脚本
不支持参数的
@echo off
dir /o:n /b *.doc > c:/list.txt
支持参数的
@echo off
if {%2} == {} (set mypath=) else set mypath=%2/
dir /on /b %mypath%*.%1 > c:/list.txt
if errorlevel 1 echo 命令格式:makelist {文件扩展名} [驱动器:][路径] > c:/list.txt
6、dir c:/windows/*.exe | find "win"
*-所有,任意
7、copy命令
复制
copy c:/test.txt d:/
复制并改名
copy c:/test.txt d:/test2.txt
复制大量文件
copy c:/movies d:/backup
copy c:/movies/*.rm d:/backup
copy c:/movies/*.rm d:/backup /y 【直接覆盖】
合并文件
copy /b c:/1.txt+c:/2.txt c:/3.txt
8、md命令
功能:创建目录
md test
cd test
md cfan
一次创建多级目录
md c:/test/cfan
一次创建多个子目录
md a b c
md c:/a d:/aa
备份doc文件到d:/myfolder/word
@echo off
if not exist d:/myfolder/nul md d:/myfolder
if not exist d:/myfolder/word/nul md d:/myfolder/word
cd c:/myfolder
cd d:/myfolder/word
copy /v /y c:*.doc d:
支持参数的备份各种格式文档
@echo off
if {%2} == {} (set mypath2=) else set mypath2=%2
set mypath1=c:/myfolder
copy /v /y %mypath1%/*.%1 %mypath2%
if errorlevel 1 echo 命令格式:backup 文件扩展名 [目标目录]
if errorlevel 1 pause
一次备份多个文件扩展名的文档
@echo off
cd c:/myfolder
cd d:/myfolder
for %%d in (txt doc xls jpg gif mp3) do if not exist d:%%d/nul md d:%%d
for %%f in (txt doc xls jpg gif mp3) do copy /v /y c:*.%%f d:%%f
9、del命令
功能:删除文件
del c:/windows/trajon.exe
del d:/movies/*.rm
del /p d:/games/*.* 【删除前要确认】
del c:/windows/sys.dll /ars 【a-
属性,r-只读,s-系统,a-存档】
del c:/windows/game.log /f 【删除只读文件】
del d:/movies/*.* /a-s 【删除非系统属性的文件】
del c:/windows/web/*.htt /s 【删除所有】
del d:/movies/*.* /q 【安静模式,不提示】
10、rd命令
删除目录
rd d:/movies /s 【删除movies下的所有文件、目录】
rd d:/movies /s/q 【安静模式】
删除系统临时文件
@echo off
del %temp%/*.* /s/q
12、date和time
date /t 直接显示日期
time /t 直接显示时间
突破软件试用时间限制
@echo off
date 2005-03-15
d:/abc.exe
禁止用户在指定日期运行QQ
@echo off
if "%DATE%" NEQ "2010-06-15 星期二" qq.exe else goto err
exit
:err
echo 今天不准用QQ聊天
pause
记录QQ的使用情况
@echo off
echo -------------------- >> "log.txt"
echo QQ运行日期=%DATE% >> "log.txt"
echo QQ运行时间=%TIME% >> "log.txt"
start /w regedit /e reg.txt HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer
type reg.txt | find "Logon User Name" >> "log.txt"
del reg.txt > nul
qq.exe
13、ren和replace命令
ren:重命名文件
ren d:/a.txt b.txt
ren d:/a.txt b.bak
replace:替换文件
replace d:/a.txt d:/backup 【用D:/a.txt替换D:/backup下的同名文件】
replace d:/a.txt d:/backup /a 【将D:/a.txt添加到D:/backup】
【在、d:/backup目录中不包含a.txt】
replace d:/a.txt d:/backup /s 【用D:/a.txt替换D:/backup及其子目录下所有的同名文件】
replace d:/a.txt d:/backup /u 【只替换比源文件旧的文件】
14、attrib和at命令的使用
00:00备份
at 00:00 cmd /c copy C:/Documents/*.* C:/MyDocs
attrib
a“存档”、s“系统”、h“隐藏”、r“只读”
attrib d:/a.txt
attrib +r d:/a.txt 【增加只读属性】
attrib -h d:/a.txt 【清除隐藏属性】
attrib +h d:/movie/*.rmvb /s 【批量操作文件】
attrib +h d:/movie /s /d 【也处理目录】
at命令
at 16:00 calc.exe
at 2 /delete 【删除ID为2的计划任务】
at /delete 【删除所有任务】
at 2 /delete /yes 【不用确认】
at 16:30 /interactive calc.exe 【以前台方式运行calc.exe】
at 16:30 /every:16 c:/run.bat 【在每月16日的16:30运行】
at 16:30 /next:16 c:/run.bat 【下个月16日执行】
15、find和tree命令
find
find "software" list.txt
find /c "software" list.txt 【返回出现的次数】
find /n "software" list.txt 【显示行号】
find /i "software" list.txt 【忽略大小写】
find /v "software" list.txt 【找出文件中不包含指定字符串的行】
find /c /i "software" list.txt
find /c "hello" d:/docs/*.txt
tree
显示当前目录下的结构图
tree d:/test
tree d:/test /f 【显示D:/test目录下的结构图,包含文件名】
find/tree
tree g:/ /f > c:/list.txt
tree d:/test /f | find /c /i "sample.txt"
16、终极DOS技能——循环(上)
for %%f in (*.bat *.txt) do type %%f
在当前目录下搜索所有BAT和TXT文件,并逐个将搜索到的文件名存入变量%%f中,每搜索到一个,就执行type命令显示%%f变量中指定的文件。
有始有终的数字序列
for /L %%c in (3,1,5) do echo %%c
for /L %%变量 in (开始,步进,结束) do 循环执行指定的命令 [命令参数]
一大堆文件
for %%变量 in (文件集合) do 循环执行指定的命令 [命令参数]
玩转目录遍历
for %%c in (*.txt) do type %%c
for /d %%c in (*.txt) do type %%c 【遍历目录】
@echo off
for /d %%i in (c:/*) do echo %%i
显示C盘根目录下的全部目录
for /d %%i in (???) do echo %%i
显示当前目录下,名字只有1-3个字母的目录
子目录也不能放过
for /r %%变量名 IN (set) DO command
@echo off
for /r c:/ %%i in (*.exe) do echo %%i
pause
列出c盘全部的exe文件
应用:合并所有的文本文件
@echo off
type NUL > all.txt
for %%f in (*.txt) do copy /b all.txt+%%f all.txt
将1到100的数字按顺序逐个写入num.txt中,每个数字占一行。
for /L %c in(1,1,100) do echo %c >>e:/a.txt
将当前目录下的所有文件都加上“dos”前缀
for %c in (*.*) do ren "%c" "doc%c"
报告每个硬盘分区的剩余空间
for %a in (c: d: e:) do @dir %a | find "可用"
17、终极技能——循环(下)
在每个文件最后加上一行宣传语
@echo off
for %%f in (*.txt) do (
echo. >> %%f
echo DOS快餐店收集整理 >> %%f
)
整理顾客资料
原:
张三 20 CFan 男 13800000000 我叫张三……
李四 30 Digi 女 13900000000 我叫李四……
新:
张三 13800000000
李四 13900000000
@echo off
for /f "eol=; tokens=1,5 delims=, " %%i in (custom.txt) do echo %%i %%j >> new.txt