DOS批处理
1.简单批处理命令
1.1echo:打开或关闭回显
echo off
关闭回显
==》关闭之后不会显示一些不必要的信息。
后面所有的命令均不显示,但本条命令是显示的。
@echo off
@echo off执行以后,后面所有的命令均不显示,包括本条命令。
@ 符号的意思是不显示它后面的命令语句,只显示命令执行的结果!
echo on
打开回显
@echo off的作用
1.2set
显示,设置或删除变量
显示变量:set或set s前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置变量:set aa=abcd 此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
删除变量:set aa= 此句命令即可删除变量aa。若变量aa已经被定义,则删除变量aa;若aa尚未定义,则此句命令无实际意义。
用法:set[环境变量]=[字符串]
set python = "D:\Program files\python39\python.exe"
1.3注释
Rem
Rem后面的命令行不会被执行,但能回显
::
::也可以起到Rem注释的作用,但与Rem不同的是,::后面的命令行可以回显。
1.4 %
如果一个名称用%括起来,那么就是用的它的赋值,而不是本身的字母
echo time
回显显示time
echo %time%
显示系统时间 19:42:12:02
总结:
- 使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间;
- 单个%紧跟0-9的一个数字表示引用命令行参数;
- 用于for中表示引用循环变量;
- 连续的两个%表示执行时脱为一个%。(即转义符)
%time%指时间,%path%指查找路径,%tmp%和%temp%指临时目录,其实就是用一个名字代表系统中的一个变量让命令或程序调用。
%*
bat脚本的全部参数
2.复杂批处理命令
2.1文件夹管理
2.1.1cd
进入某目录
cd dirname
例子:
cd src\qt
进入当前目录下src文件夹,然后进入src目录下的qt文件夹。
cd ../
返回上一级目录
cd /d %~dp0
%~dp0:
d是drive的缩写,驱动器,磁盘;p为path缩写,路径、目录。
cd /d %~dp0的意思如下:更改当前目录为批处理文件所在的目录。
例如,test.bat文件所在目录为E:\test\qt
cd /d %~dp0的意思就是:cd /d E:\test\qt
- %0代表批处理本身,E:\test\qt\test.bat
- ~dp是变量扩充:d代表扩充到分区号E:
- p代表扩充到路径 \test\qt
- dp就是代表扩充到分区号路径:E:\test\qt
更多详细信息,参见:%~dp0是什么意思
2.1.2mklink
创建符号链接
mklink [[/D] [/H] [/J]] Link Target
- /D 创建目录符号链接,默认为文件符号链接
- /H 创建硬链接而非符号链接
- /J 创建目录链接
- Link 指定新的符号链接名称
- Target 指定新链接引用的路径(绝对或相对)
例子
在当前文件夹创建符号链接tool,tool链接的路径为C:\MyCode\Tool
mklink /J /D tool C:\MyCode\Tool