Windows BAT脚本指令总结和笔记

最近在工作的项目工程中遇到了各式各样的bat脚本,故总结和记录下所遇到的指令;

bat脚本常用指令总结

以下是Windows批处理脚本(.bat脚本)中常见的指令总结:

  1. echo:用于在终端输出文本或变量的值。 示例:echo Hello World
  2. set:用于创建或修改环境变量。 示例:set VARIABLE_NAME=value
  3. if:用于进行条件判断。 示例: if CONDITION ( REM do something ) else ( REM do something else )
  4. for:用于循环操作。 示例: for %%VARIABLE in (list) do ( REM do something )
  5. goto:用于跳转到脚本中的指定标签。 示例: goto LABEL
  6. cd:用于更改当前目录。 示例: cd C:path odirectory
  7. del:用于删除文件。 示例: del filename.txt
  8. copy:用于复制文件或目录。 示例: copy source_file destination_file
  9. move:用于移动文件或目录。 示例: move source_file destination_folder
  10. timeout:在指定的时间内暂停执行。 示例: timeout /t 5 (暂停5秒钟)
  11. pause:暂停脚本的执行,等待用户按下任意键继续。 示例: pause

这里只列举了一些常见的指令

1 @echo off

@echo off的意思是在批处理运行命令的时候不会一条一条的显示执行的命令,与之相匹配的还有@echo on。 @echo off:关闭回显 @echo off:打开回显

当不想批处理文件中的命令一行一行在DOS中显示出来时(因为全部显示出来的话看起来会变得很杂乱),可以使用@echo off,将其放于程序的最上方就行了。

示例:不加@echo off 的bat执行效果

@echo on
title A
color 0B
echo %date%
echo.
echo %time%
pause

显示为: 然后将@echo on设置为@echo off www.winwin7.com

结果为:

很简单@echo off在批处理中的作用就是把每条执行的命令给隐藏起来了。

2 REF

REF的作用是注释;相当于c/c++里的//; 在bat中,em、@rem和::的作用都是注释;

3 SET

作用:设置变量,为变量赋值; 当引用该变量时,需要加上%; 例子:

@echo off
set var=hello bat    ::注意空格问题
echo %var%
pause

运行结果

hello bat
Press any key to continue . . .

4 %~dp0

%~dp0 作用是获取当前目录路径;

%~dp0 获取的是批处理文件所在目录的路径,

%~dp0 可以用来获取批处理文件的实际路径,与当前 DOS 环境所在的目录没有关系。其中:

%~dp0 的 “d” 为 Drive 的缩写,即为驱动器,磁盘;

%~dp0 的 “p” 为 Path 缩写,即为路径,目录;

实例:获取批处理文件自身磁盘路径。

@echo off
set BPath=%~dp0
echo %BPath%
pause

把1.bat文件放到D盘,运行结果:

5 %~nx0

%~nx0,%0表示当前正在运行的批处理文件的文件名,%~表示一个子串的意思,n表示文件名,x表示扩展名,0表示参数0,即是%0所表示的含义;因此%~nx0表示仅取当前批处理文件的文件名和扩展名。

6 CALL

CALL从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。

7 pushd

pushd命令:作用是将当前目录的路径保存下来,并且切换到你指定的新目录路径。

8 rmdir

删除一个非空目录 (必须指定目录名称)

rmdir /q /s d:	estlogs

必须指定目录名称,不能使用通配符 /S 除目录本身外,还将删除指定目录下的所有子目录 /Q 安静模式,带 /S 删除目录树时不要求确认

经验分享 程序员 微信小程序 职场和发展