Windows 批处理文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 批处理文件相关的知识,希望对你有一定的参考价值。

窗口自动关闭:批处理文件执行完之后,窗口会自动关闭,若想执行完之后,窗口不自动关闭的话,在文件末尾添加
1. 批处理文件执行完之后,窗口会自动关闭
2. 若想执行完之后,窗口不自动关闭的话,在文件末尾添加 pause 即可。

REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。

@在批处理中的意思是关闭当前行的回显。我们从上面知道用命令echo off可以关掉整个批处理的命令回显但却不能不显示echo off这个命令。现在我们在这个命令前加上@这样echo off这一命令就被@关闭了回显从而达到所有命令均不回显得要求

批处理单独输入换行符
echo.和echo/ 输入单独的换行,echo和点、斜杠之间没有空格,单独输入echo显示的是echo当前的状态,如果之前使了echo off ,那么提示就是“echo处于关闭状态”;如果前面使用了“echo on”,那么提示就是“echo处于开启状态”。

set:设定或修改变量值,语法set [variable=[string]]
variable是变量名,string是给变量指定的值(一系统字符串)

注意:变量名后紧跟等号(=),中间不可有空格,否则赋值失败。等号(=)后可以有空格,但空格会作为一个字符来出现。所以,在使用set赋值时,等号前后都不应该有空格的!

例如:
set var=2
echo %var%

在set指定变量值时,若环境中已存在该变量,则用新值替换旧值,若等号后无值,则只清除旧值。

【变量查看】
查看当前所有系统变量,直接输入set,后面不带任何参数。
查看所有以某个字母开头的一系列环境变量(就是变量),只要在set命令后加上首字母即可,如显示所有以P开头的变量,则输入:set P。若当前环境中未找到以P开头的变量名,则将errorlevel设置成1。

【变量引用】
在引用变量时,变量名的两边需要分别用百分号(%)扩起来,如%var%。

【变量赋值】
除了基本的变量赋值,set还有两种带参数的赋值方式/a和/p,这两种方式大大增强了set的功能,具体如下:

/p
交互式将变量值赋为用户输入的值,读取用户输入值前,可以有提示字符串(也可不写提示字符串,不过一般都有),例如:


@echo off
set /p name=请输入用户名:
set /p pw=请输入密码:
if %name% == 姓名 (echo 你输入用户名是:姓名) else (echo 用户名输入错误)
if %pw% == 123456 (echo 你输入密码是:123456) else (echo 密码输入错误)
pause

上面的代码只是做简单的测试,在实际运用上非常重要,如,我们可以让用户输入用户名、密码,然后去连接Oracle数据库,去执行指定文件夹中的脚本。

【常用系统变量】
%DATE%:当前日期。
%TIME%:当前时间。
%RANDOM%:0和32767之间的任意十进制数字。
%ERRORLEVEL%:当前ERRORLEVEL数值。
%0:当前完整全路径(带双引号)
%~0:当前完整全路径(无双引号)
%~s0:当前短全路径名(无双引号)
%~f0:当前全路径
%cd%:当前目录(无文件名)
%~d0:当前盘符
%~p0:当前目录(无盘符无文件名)
%~n0:当前文件名
%~x0:当前文件扩展名
%~t0:当前文件最后修改时间
%~z0:当前文件大小(B)

以上是关于Windows 批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 下载 Windows 批处理文件文件

如何检测文件夹是不是为空(Windows 批处理文件)?

在批处理文件中获取文件时间(Windows)

如何用批处理文件(.bat)停止或启动windows的服务 ?

可以用windows批处理脚本连接linux传输文件吗?

Windows 文件 PathTooLongException:用于识别文件路径长于 255 的批处理文件