如果%a% lss 5设置标志=1
如果%b% lss 5设置标志=1
If %flag% equ 1 (echo a小于5或b小于5) else (echo a和b不小于5)
中止
目录
@关闭回声
*使用冒号加标记名作为goto语句的标记。
:开始
set /p param=
如果%param%==4 (echo请不要输入4!goto start) else (echo %param%)
中止
1、语句注释
@关闭回声
Set /p param=请输入密码:
回声%param%
中止
2、暂停
ANSI
*输出为1
@关闭回声
设定a=1
set a=2echo %a%
中止
注意:在批处理运行“set a=2echo %a%”之前,会对整句进行读取和预处理,即给变量A赋值,那么%a%的值就是1。为了解决这个问题,批量设计有一个可变的延迟。也就是说,在读完一个完整的语句后,这一行的变量不会立即赋值,而是在执行单个语句前赋值。具体实现如下:
*产出是2
@ echo offset local enabledelayedexpansion
设定a=1
设置a=2echo!答!
中止
注意:“变量名=值”中间不应有空格
@关闭回声
*将0分配给b。
设置b=0
回声b:%b%
*将空格和0分配给a。
设定a=0
回显a:%a%
*无法赋值。
设置c=0
回声c:%c%
中止
3、输出和换行
@关闭回声
*查看所有环境变量
回声-所有-
设置
回声结束-
*检查环境变量JAVA_HOME的值。
如果定义了JAVA_HOME(echo JAVA _ HOME:% JAVA _ HOME %)else(echo不定义JAVA _ HOME)
中止
4、开启关闭回显
@关闭回声
集合a=1集合b=6
集合c=%a% %b%
*产出1 6
回声%c%
集合d=a b
*产出a b
回声%d%
set /a e=a b
*产出7
回声%e%
中止
5、新建文件、增加文件内容
@关闭回声
*关键字for、in和do是必需的,括号是必需的。
分隔符可以是逗号、分号、等号和空格。
*输出是一个新行1新行b。
对于%%i in (A,B,C) do echo %%i echo 1
波瑟努尔
@关闭回声
*找出d盘下的所有文件。
对于%%i in (d:\*。*)做回显“%%i”
中止
@关闭回声
set str=c d e f g h I j k l m n o p q r s t u v w x y z
echo当前硬盘的分区是:
对于% % I in(% str %)do if exist % % I:echo % % I:
中止
@关闭回声
*在当前目录中找到带有四个字符的txt文件。
对于%%i in(?txt)做回显“%%i”
中止
6、设置标题title
%0是指文件本身,而%1-%9是接收到的参数。在下面的例子中,子程序的% 1是主程序发送的param1,而%2是param2。
*文件名是test.bat
@关闭回声
Echo是主程序的第一个输出。
超时2
开始测试1.bat参数1参数2
超时2
Echo是主程序的第二个输出。
中止
*文件名是test1.bat
@关闭回声
超时2
Echo是子例程的第一个输出。
Echo是收到的第一个参数%1和第二个参数%2。
中止
@关闭回声
set /p param=
如果%param%==4 (echo请不要输入4!)else (echo %param%)
:%0在当前窗口中再次调用自身。
%0
7、设置颜色
:@回声关闭
*显示当前目录。
激光唱片
*切换到根目录
cd\
*在驱动器号后添加一个冒号,以切换到该驱动器。
d:
*切换到e:hi目录(目录名不区分大小写)
CD/d e:\嗨
*保存当前目录,并将当前目录切换到d:\test。
pushd d:\测试
*将当前目录恢复到刚刚保存的e:\hi。
popd
中止
8、if语句判断
*创建一个文件夹
md e:\test\test1
*文件夹名称有空格,需要引号。
MD ' e:\测试操作'
*用空格隔开,形成多个
MD e:\ test1 e:\ test9 \ test2 ' e:\ test5 lmn '
9、goto语句跳转
@关闭回声
*删除e:\test op下的空文件夹。如果不是空的,则不能删除。
rd ' e:\测试操作'
*删除e:\test9下的所有文件夹,无论它们是否为空,但会询问您是否确定要删除[Y/N]
研发工程师:\测试9
*自定义删除提示信息
回显删除[是/否]: rd /s e:\test9nul
:/s/q连用,不问就直接删。
rd /s/q e:\test9
10、set用法之接收用户输入数据
@关闭回声
*文件夹移动。如果test文件夹存在,将test5文件夹移动到test文件夹。
*如果测试文件夹不存在,将test5文件夹移至test1文件夹,并将其重命名为test。
*注意:文件夹移动不能跨越分区。
移动e:\test5 e:\test1\test
*将d:\test\1.txt文件移到e:\并将其重命名为23.txt
*如果该目录中已经存在23.txt,它将被覆盖。
D: \ test \ 1.txt e: \ 23.txtnulecho已成功移动并重命名。
*将e:\23.txt文件移至e:\test文件夹
E: move e:\23.txt e:\testnulecho移动到文件夹。
11、set用法之定义变量和延迟赋值
@关闭回声
*删除该层目录中的所有文件,您需要确认[Y/N]
del d:\test
中止
*不需要确认。
del /q d:\test
*删除该目录下所有级别的所有文件,不要删除文件夹。你需要逐一确认。
del/s d:\测试
*删除111.png档案。不需要确认。
del d:\test\111.png
12、set用法之系统变量
@关闭回声
*将d:\test\test.txt复制到e:\test1\目录,并将其重命名为test2.txt。
*如果test2.txt文件已经存在,它将被自动覆盖。
复制d:\ test \ test . txt e:\ test1 \ test2 . txt
*将e:\test目录中的所有文件复制到d:\test1\test3文件夹中。
*先决条件d:\test1\test3文件夹必须已经存在。
*具有相同文件名的文件将被覆盖。
复制e:\测试d:\测试1 \测试3
13、set用法之定义数字表达式
@关闭回声
*将e:\test目录中的所有文件(文件夹)复制到d:\test1
*当/y已经存在时,直接覆盖/e目录中的所有文件(文件夹)。
xcopy e:\test d:\test1 /e/y
14、for语句循环
@关闭回声
cd /d d:\test
*将129.txt和156.txt文件的内容合并到新创建的new.txt中
复制129.txt 156.txt new.txt
*打印出new.txt中的内容
键入new.txt
*通过合并二进制数据,将d:\mp3\111.mp3和e:\2.mp3复制到d:\new.mp3。
*其中/b二进制,/a文本形式
copy/b d:\ MP3 \ 111 . MP3 e:\ 2 . MP3 d:\ new . MP3
15、变量%0--%9
@关闭回声
*将1.txt改名为58.bat
任d:\test\1.txt 58.bat
*将d:\test\目录中文件名以1开头的所有txt文件改为bat文件。
任d:\test\1*。txt *。蝙蝠
*将d:\test\ directory中文件名1前三个字符的所有bat文件改为txt文件。
任d:\test\1?蝙蝠?文本文件(textfile)
16、切换目录
调用程序中的子脚本,运行当前程序中的子脚本代码,执行完子脚本后继续执行这个程序之后的代码。
*文件名是test.bat
@关闭回声
Echo是主程序的第一个输出。
超时2
调用test1.bat param1 param2
超时2
Echo是主程序的第二个输出。
中止
*文件名是test1.bat
@关闭回声
超时1
Echo是子例程的第一个输出。
Echo是收到的第一个参数%1和第二个参数%2。
中止
17、md命令创建文件夹
@关闭回声
设定a=1
:开始
echo %a%set /a a=a 1
超时1 nul
转到开始
中止
@关闭回声
*每秒输出斐波那契数列。
设定a=1
集合b=1
回显% a %超时1 nul
回显% b %超时1 nul
:开始
set /a c=a b
回显%c%集合a=% b %集合b=%c%
超时1 nul
转到开始
中止
18、rd命令删除文件夹
rem:执行start时,会打开一个新线程执行程序,原程序继续执行,不受影响。
@关闭回声
*打开test.txt文件
启动e:\test.txt
启动jar包
启动java -jar e:\demo.jar
中止
启动一个新的cmd窗口并在其中执行命令。
https://www.jb51.net/article/245248.htm
19、move命令移动文件(夹)
: 1.消息命令模式
@关闭回声
:/time:5设置时间盒显示时间为5s,5s后自动关闭。
Msg * /time:5这是弹出窗口中显示的文本
中止
*设置弹出窗口的多行文本。
(echo,这是弹出窗口的第一行文字。
Echo是第二行文本)|msg * /time:5
中止
: 1.调用VBScript的MsgBox实现弹出窗口
@关闭回声
*第二个参数65的解释在代码后的列表中。
Mshta vbscript:msgbox('弹出单行显示内容',65,'弹出标题')(window.close)
*多行显示文本可以在文本中使用vbCrLf或vbNewLine。
Msg='多行显示vbCrLf。这是第二行,vbNewLine,这是第三行
mshtavsubscript:msgbox(replace(% msg %,' vbcrlf ',vbcrlf),' vbnewline ',vbnewline),6,'自定义标题')(window.close)
MsgBox的按钮参数值如下:
0=vbOKOnly-只显示确定按钮。
1=显示vbOKCancel-确定和取消按钮。
2=vbAbortRetryIgnore-显示放弃、重试和忽略按钮。
3=vbYesNoCancel-显示是、否和取消按钮。
4=vbYesNo-显示是和否按钮。
5=vbRetryCancel-显示重试和取消按钮。
16=VB critical-显示关键信息图标。
32=VB question-显示警告查询图标。
48=感叹号-显示警告消息图标。
64=VB information-显示信息消息图标。
0=vbdefaultbutton 1-第一个按钮是默认按钮。
256=vbdefaultbutton 2-第二个按钮是默认按钮。
512=vbdefaultbutton 3-第三个按钮是默认按钮。
*以下等价于判断errorlevel大于等于0,小于1等价于%errorlevel%==0
如果错误级别0如果不是错误级别1回显0
中止
Exit/bnum可以用来指定子程序退出时的返回代码,主程序可以接收到errorlevel的返回代码。
@关闭回声
回声这是测试。蝙蝠
echo %errorlevel%
调用test1.bat
echo %errorlevel%
中止
@关闭回声
回声这是测试1。蝙蝠
按echo任意键结束test1.bat!pausenul出口/b 123
请对脚本使用ANSI编码。很多操作都需要管理员权限,用管理员权限一次性执行脚本if语句真的很恶心。注意变量的延迟加载。避免在字符串中使用特殊字符和括号。环境变量只能在设置后的新窗口中查看,所以设置后不能立即查看。%0呼叫本身继续在当前窗口中执行,并且无法查看。
本文对常见bat脚本命令和pro-test示例代码的详细解释到此为止。更多相关bat脚本命令,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。