参考文章
常用命令
对于下列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?
echo : 打印。如: echo "你好"。
echo off #从下一行开始关闭回显
echo on #从下一行开始打开回显
rem : 注释。 如:rem 演示注释
pause : 暂停
set : 赋值。如 :set a=12
& :顺序执行多条命令,而不管命令是否执行成功。
&& : 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令。
| :管道命令。
|| :顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令。
> :清除文件中原有的内容后再写入。
>> :追加内容到文件末尾,而不会清除原有的内容。
< :从文件中获得输入信息 ,如:date <temp.txt
^ :续行
获取入参
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命令行传递给批处理的参数
%0 批处理文件本身
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数
新建temp.bat 文件,内容如下:
echo 输入第一个参数 %1,第二个参数 %2
运行结果: 输入第一个参数 1,第二个参数 2
变量
设置变量 :SET 变量名 = 变量值
引用变量: %变量名%。如打印系统变量: %path%
截取字符串:
@echo off
set a=123456789
rem 全部字符串
echo %a%
rem 截取第2个字符以后的所有字符
echo %a:~2%
rem 截取第2个字符以后的3个字符
echo %a:~2,3%
rem 截取最后面的2个字符
echo %a:~-2%
运行结果:
123456789
3456789
345
89
特殊变量:
@echo off
rem 当前目录
echo %CD%
rem 当前日期
echo %DATE%
rem 当前时间
echo %TIME%
rem 随机整数,介于0~32767
echo %RANDOM%
rem 当前 ERRORLEVEL 值
echo %ERRORLEVEL%
运行结果:
D:\qzn\Workspace\IdeaShuke20201205\1
2020/12/11 周五
15:46:17.88
3774
9009
set /a a= expression : 指定等号右边的字符串为被评估的数字表达式
set /p a=请输入 : 屏幕上显示”请输入”,并会将输入的字符串赋值给变量p
@echo off
set /p t1=请输入:
set /p t2=请输入:
set /a a=t1+t2
echo 结果:%a%
运行结果:
请输入:1
请输入:4
结果:5
注意变量在 if 和 for 的复合语句里是一次性全部替换的,如下:
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo %p%
)
运行结果
aaa
aaa
解决问题:可以启用”延缓环境变量扩充”,用 ! 来引用变量,即 !变量名!
SETLOCAL ENABLEDELAYEDEXPANSION
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
echo !p!
set p=bbb
echo !p!
)
运行结果:
aaa
bbb
判断
temp.bat 文件内容如下:
@echo off
set /p varA=请输入:
if "%varA%"=="A" (
echo %varA% is A
) else if "%varA%"=="B" (
echo %varA% is B
) else (
echo %varA% is C
)
运行结果:
请输入:A
A is A
循环
@echo off
set array=(1,2,3)
for %%i in %array% do (
echo i=%%i
)
运行结果
i=1
i=2
i=3
常用命令
对于下列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?
call :从批处理程序调用另一个批处理程序
start :启动新的“命令提示符”窗口来运行指定程序或命令
cls :清屏
文件夹管理
cd :显示当前目录名或改变当前目录。如:cd /a
mkdir:创建目录。如:mkdir \a\b\c
rmdir :删除目录。如:rmdir \a\b\c
dir :显示目录中的文件和子目录列表。
xcopy :复制文件和目录树。格式:xcopy source [destination] [参数] 。如:xcopy util util2 /s/-y/i
文件管理
exist 判读文件是否存在。如:exist temp.bat
type 显示文本文件的内容。如:type temp.bat
copy 将一份或多份文件复制到另一个位置。如:copy /y temp.bat temp1.bat
del 删除一个或数个文件。如:del temp1.bat
move 移动文件并重命名文件和目录。
ren 重命名文件。
replace 替换文件。
attrib 显示或更改文件属性。
find 搜索字符串。
fc 比较两个文件或两个文件集并显示它们之间的不同
网络命令
ping 进行网络连接测试、名称解析
ftp 文件传输
net 网络命令集及用户管理
telnet 远程登陆
ipconfig显示、修改TCP/IP设置
msg 给用户发送消息
arp 显示、修改局域网的IP地址-物理地址映射列表
系统管理
at 安排在特定日期和时间运行命令和程序
shutdown立即或定时关机或重启
tskill 结束进程
taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
tasklist显示进程列表(Windows XP Home Edition中没有)
sc 系统服务设置与控制
reg 注册表控制台工具
powercfg控制系统上的电源设置
其他说明
xcopy :复制文件和目录树。格式:xcopy source [destination] [参数]
/p 创建每个目标文件之前提示您。
/s 复制目录和子目录,不包括空目录。
/e 复制目录和子目录,包括空目录。与 /s /e 相同。可以用来修改 /t。
/v 验证每个新文件的大小。
/w 提示您在复制前按键。
/c 即使有错误,也继续复制。
/i 如果目标不存在,且要复制多个文件,则假定目标必须是目录。
/q 复制时不显示文件名。
/f 复制时显示完整的源文件名和目标文件名。
/l 显示要复制的文件。
/g 允许将加密文件复制到不支持加密的目标。
/h 也复制隐藏文件和系统文件。
/r 覆盖只读文件。
/t 创建目录结构,但不复制文件。不包括空目录或子目录。/t /e 包括
空目录和子目录。
/u 只复制已经存在于目标中的文件。
/k 复制属性。一般的 xcopy 会重设只读属性。
/n 用生成的短名称复制。
/o 复制文件所有权和 acl 信息。
/x 复制文件审核设置(隐含 /o)。
/y 取消提示以确认要覆盖现有目标文件。
/-y 要提示以确认要覆盖现有目标文件。
/z 在可重新启动模式下复制网络文件。
/b 复制符号链接本身与链接目标相对。
/j 复制时不使用缓冲的 i/o。推荐复制大文件时使用。
copy 将一份或多份文件复制到另一个位置。格式:copy [参数] source [/a | /b] [+ source [/a | /b] [+ …]] [destination [/a | /b]]
source 指定要复制的文件。
/a 表示一个 ascii 文本文件。
/b 表示一个二进位文件。
/d 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/v 验证新文件写入是否正确。
/n 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/y 不使用确认是否要覆盖现有目标文件
的提示。
/-y 使用确认是否要覆盖现有目标文件
的提示。
/z 用可重新启动模式复制已联网的文件。
/l 如果源是符号链接,请将链接复制
到目标而不是源链接指向的实际文件。
move 移动文件。格式: move [/y | /-y] [drive:][path]dirname1 dirname2
[drive:][path]filename1 指定您想移动的文件位置和名称。
destination 指定文件的新位置。目标可包含一个驱动器号
和冒号、一个目录名或组合。如果只移动一个文件
并在移动时将其重命名,您还可以包括文件名。
[drive:][path]dirname1 指定要重命名的目录。
dirname2 指定目录的新名称。
/y 取消确认覆盖一个现有目标文件的提示。
/-y 对确认覆盖一个现有目标文件发出提示。