详见call命令
~是扩展的意思,相当于把一个相对路径转换绝对路径
%0代指批处理文件自身
%1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推
%~d0 是指批处理所在的盘符,其中d代表drive
%~p0 是指批处理所在的目录,其中p代表path
%~dp0 是批处理所在的盘符加路径
cd %~dp0 就是进入批处理所在目录了
关闭回显:
@echo off
打印:
echo abc
注释:
rem 这是一条注释
暂停:
pause
设置变量:
set A=123
set Path=C:\B\D
访问变量:
echo %A%
打开路径:
cd %~dp0 //%~dp0是批处理所在的当前目录
cd A\B
cd \A\B
cd C:\A
启用扩展(默认启用)
setlocal enableExtensions
禁用扩展
setlocal disableExtensions
创建文件夹:md/mkdir
md MyDir\A //当前位置创建,启用扩展时创建连续目录(不存在的目录都会创建)
mkdir \MyDir\A //根目录创建,启用扩展时创建连续目录(不存在的目录都会创建)
md\A
mkdir \A\BB //禁用扩展,无法创建连续目录(连续目录也要创建),只能先创建A,有了A才能创建BB
定位到标记行:
goto FLAG //调到下面的:FLAG行
echo hello
:FLAG
复制文件和目录:
xcopy A
rem 只复制A文件夹下的文件到当前目录
xcopy A B
rem 只复制A文件夹下的文件到B目录
xcopy /e /s A B
rem 复制A文件夹下的文件和子文件夹和文件到B目录
xcopy /e /s /t A B
rem 复制A文件夹下的子文件夹结构到B目录,不复制文件
删除文件夹:rd/rmdir
rd B
rem 删除空目录B
rmdir /s /q B
rem 删除目录B及子目录和文件,/q:安静模式,/s删除子项
删除文件:erase/del
del 2.txt
最小化启动程序XXX
start /min XXX.exe
最大化启动程序XXX
start /max XXX.exe
无边框启动程序XXX
start XXX.exe -popupwindow
结束进程XXX
taskkill /f /t /im XXX.exe
删除注册表选项
reg delete "HKEY_CURRENT_USER\Software\My\mysoftware" /v "customkey" /f