bat教程

参考文章

Windows批处理(cmd/bat)常用命令教程

bat脚本里面if else if的写法

常用命令

对于下列出的所有命令,在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                     对确认覆盖一个现有目标文件发出提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值