windows批处理语法

写批处理文件,除了了解基本语法外,你还需要熟悉常用的windows命令,常用windows命令
打开“运行”对话框(win+r),输入cmd,打开控制台命令窗口。。。
也可以通过cmd /c命令和cmd /k命令的方式来直接运行命令
注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口

#控制台命令窗口中一些技巧
复制内容:右键选择“标记(K)”,复制所需内容,然后右键即可
粘贴内容:右键选择“粘贴(P)”
在文件夹空白处按住shift,然后右键弹出快捷菜单,可以看到“在此处打开命令行窗口”
使用上下方向键,翻看使用过的命令

tab补全功能
命令参数的路径:要使用反斜杠'\',不要使用正斜杠'/'。如:del d:\tests\file\my.txt
命令参数的路径:若存在空格,应使用双引号将路径引起来。如:del "d:\program files\file\my.txt"
文件及目录名中不能包含下列任何字符:\/:*?"<>|

rem //在批处理文件中添加注解,其后的命令不会被执行,但会回显
:: //::也可以起到rem的注释作用,且不会有回显
任何以冒号:开头的字符行,在批处理中都被视作标号(label),而直接忽略其后的所有内容
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别
无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用,::常被用作注释符号

o.获取帮助
command /? //查看command命令帮助说明
1。中断命令执行
ctrl +z
2。文件/目录
cd 切换目录 例
cd //显示当前目录
cd .. //进入父目录
cd /d d: //进入上次d盘所在的目录(或直接输入:d:)
cd d: //显示上次d盘所在的目录
cd /d d:\AMD //进入d:\AMD目录
cd ppc //进入当前目录下的ppc文件夹

pushd popd 使用栈来维护当前目录
md d:\mp3 //在d:\建立mp3文件夹
cd /d d:\AMD\PPC\mp3 //更改当前目录为d:\mp3
pushd f:\mp3 //将当前目录d:\AMD\PPC\mp3入栈,并切换当前目录为f:\mp3
popd //将刚才保存的d:\AMD\PPC\mp3弹栈,并设置为当前目录

dir 显示目录中的内容 例
dir //显示当前目录中的子文件夹与文件(详细信息)
dir /b //显示当前目录中的子文件夹与文件名
dir /p //分页显示当前目录中的子文件夹与文件
dir /ad //显示当前目录中的子文件夹
dir /a-d //显示当前目录中的文件
dir f:\mp3 //显示f:\mp3目录中的内容
dir test.txt //显示当前目录中test.txt的信息
dir /S //递归显示当前目录中的内容(进入到子文件夹显示包含的文件目录信息)
dir key* //显示当前目录下以key开头命名的文件和文件夹信息
dir /AH/OS //只显示当前目录中隐藏的文件和目录,并按照文件大小从小到大排序

tree显示目录结构
tree d:\amd\ppc //显示d:\amd\ppc目录结构

ren文件或目录重命名
ren test.txt rec.ini //将当前目录下的test.txt文件重命名为rec.ini
ren f:\mp3 mps //将f盘下mp3文件夹重命名为mps

md创建目录
md movie music //在当前目录中创建名为movie和music文件夹
md d:\test\movie //创建d:\test\movie目录

rd删除目录
rd movie //删除当前目录下的movie空文件夹
rd /s/q d:\amd\ppc\music //使用安静模式删除d:\amd\ppc\music(除目录本身外,还将删除指定目录下的所有子目录和文件)

copy拷贝文件
copy key_01.txt f:\mps \\将当前目录下的key_01.txt拷贝到f:\mps下(若mps中也存在一个同名文件,会询问是否覆盖)
copy key_01.txt f:\mps\key_bak.txt //将当前目录下的key_01.txt拷贝到f:\mps下,并重命名为key_bak.txt(若存在同名文件,会询问是否覆盖)
copy /y key_01.txt f:\mps \\将当前目录下的key_01.txt拷贝到f:\mps下,(不询问,直接覆盖写)
copy key_01.txt + //复制文件到自己,实际上是修改了文件日期
copy /y key_01.txt + key_02.txt key.txt //当前目录下的key_01和02txt的内容合并写入key.txt中(不询问,直接覆盖写)
copy key*.txt + key.txt \\把所有以key开头命名的文件内容合并到key.txt文件中
copy /b key* keyy.txt \\将当前目录下的key开头的所有文件(按照名称升序排序)依次合并生成keyy.txt

xcopy更强大的复制命令
xcopy D:\AMD\PPC\mps f:\mps\ /y/h/e/f/c \\将d盘mps目录中所有内容拷贝到f盘mps中。注意:需要在mps后加上\ 表示mps为一个目录,否则xcopy会询问mps是f还是d
move移动文件
move *.png test \\将当前目录下的png图片移动到当前目录下test文件夹中(若存在同名png图片,会询问是否覆盖)
move 1.png f:\mps\2.jpg \\将当前目录下的1.png移动到f盘mps中,并重命名为2.jpg
move movie f:\new \\若f盘存在new文件夹,将当前目录下的movie文件夹移动到f盘new文件夹中;若不存在,将重新创建

del 删除文件 注意:目录及子目录都不会删除
del test \\删除当前目录下的test文件夹中所有非只读文件(子目录下的文件不删除;删除前会进行确认;等价于del test\*)
del /f test \\删除当前目录下的test文件夹中的所有文件(含只读文件;子目录下的文件不删除;删除前会进行确认)
del /ar*.* \\删除当前目录下所有只读文件
del /a-s*.* \\删除当前目录下除系统文件以外的所有文件

replace 替换文件(即使这个文件在使用,仍然可以替换成功)
replace d:\love.mp3 d:\mp3 \\使用d盘下的love.mp3强制替换d盘mp3目录中的love.mp3文件
mklink创建符号链接(win7引入);创建的符号链接文件上会有一个类似快捷方式的箭头
win7下的mklink命令通过指定参数可以建立出不同形式的文件或目录链接,分为硬链接(hard link)、符号链接(symbolic link)和目录链接(junction)三种。

attrib 查看或修改文件或目录的属性[A:存档 R:只读 S:系统 H:隐藏]
attrib 1.txt \\查看当前目录下1.txt的属性
attrib -r 1.txt \\去掉1.txt的只读属性
attrib +h movie \\隐藏movie文件夹

assoc 设置‘文件扩展名’关联到的‘文件类型’
assoc \\显示所有‘文件扩展名’关联
assoc .txt \\显示txt代表的文件类型,结果显示.txt=txtfile
assoc .txt=txtfile \\恢复.txt的正确关联

ftype设置‘文件类型’关联到的‘执行程序和参数’
ftype \\显示所有‘文件类型’关联
ftype exefile \\显示exefile类型关联的命令行,结果显示exefile="%1"%*
ftype txtfile=C:\windows\notepad.exe %1 \\设置txtfile类型关联的命令行为:C:\windows\notepad.exe %1
当双击一个.txt文件时,windows并不是根据.txt直接判断用notepad.exe打开,而是先判断.txt属于txtfile‘文件类型’;在调用txtfile关联的命令行;

forfiles递归目录执行命令
forfiles /p./m.svn /s/c"cmd /c svn up -r12005" \\在当前目录下查找含有.svn的文件或目录(递归子目录),并对该目录执行指定版本号svn更新

3、文件查看
type显示文本文件内容
type c:\\11.txt \\显示c盘中11.txt的文本内容
type conf.ini \\显示当前目录下conf.ini的文本内容
type c:\11.txt | more \\分页显示c盘中11.txt的文本内容

more逐屏的显示文本文件内容
more conf.ini \\逐屏的显示当前目录下conf.ini的文本内容 【空格:下一屏q:退出】

4、注册表命令
reg注册表相关操作
参数说明:
KeyName[\Machine]FullKey
Machine为远程机器的机器名-忽略默认到当前机器
远程机器上只有HKLM和HKU
FullKey ROOTKEY+SubKey
ROOTKEY[HKLM|HKCU|HKCR|HKU|HKCC]
SubKey所选ROOTKEY下注册表项的完整名
/v 所选项之下要添加的值名
/ve 为注册表项添加空白值名<无名称>
/t RegKey数据类型
[REG_SZ|REG_MULTI_SZ|REG_DWORD_BIG_ENDIAN|
REG_DWORD|REG_BINARY|REG_DWORD_LITTLE_ENDIAN|
REG_NONE|REG_EXPAND_SZ]
如果忽略,则采用REG_SZ
/s 指定一个在REG_MULTI_SZ数据字符串中,用作分隔符的字符;如果忽略,则将‘"’用作分隔符
/d 要分配给添加的注册表ValueName的数据
/f 不提示,强行改写现有注册表项

reg add"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyApp /t REG_SZ /d "c:\tools\myapp.exe" /f \\强制添加一条开机启动c:\tools\myapp.exe程序的注册表项
reg add"HKLM\SOFTWARE\ScmClient" /v AgreementConfirmed /t REG_SZ /d 1 /f //解决32位xp打开ioa后,弹出的框关不掉问题
\\为Procmon.exe工具(Process Monitor为其属性面板上的描述名)添加license同意
\\强制删除值名的MyApp的注册表项
\\强制删除让任务栏里的任务管理为灰色的注册表项
\\删除http代理


cls 清除屏幕
ver 显示当前windows系统的版本号
winver 弹框显示当前windows系统信息
vol 显示当前分区的卷标
label 显示当前分区的卷标,同时提示输入新卷标
label c:system 设置c盘的卷标为system
time 显示或设置当前时间
prompt orz: \\将命令提示符修改为orz:
print 1.txt \\使用设置好的打印机来打印1.txt文本文件
call ff.bat \\调用执行ff.bat脚本(ff.bat脚本执行完原脚本才会往下执行)
start 运行某程序或命令
start /max notepad.exe \\最大化的方式启动记事本
start /min calc.exe \\最小化的方式启动计算器
start explorer f:\ \\调用资源管理器打开f盘
exit 退出当前cmd窗口实例
pause 暂停批处理程序,并显示:请按任意键继续。。。
color 设置当前cmd窗口背景色和前景色(前景色及为字体的颜色)
color \\恢复到缺省设置
color 02 \\将背景色设为黑色,将字体设为绿色
0=黑色 8=灰色
1=蓝色 9=淡蓝色
2=绿色 a=淡绿色
3=浅绿色 b=淡浅绿色
4=红色 c=淡红色
5=紫色 d=淡紫色
6=黄色 e=淡黄色
7=白色 f=亮白色

chcp 查看命令行环境字符编码(为一个全局设置)

 

你可能感兴趣的:(windows批处理语法)