,,bat脚本常用命令及亲测示例代码超详细讲解

,,bat脚本常用命令及亲测示例代码超详细讲解

如果%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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: