在 cmd 中用 % 表示指定一个循环或者遍历指标变量
在for中表示使用增强的变量扩展。
用在for语句中,表示增强for的功能,能够提取到更多的信息。
例如:在批处理文件的for语句中,
%%a 表示去掉第一对外侧引号,
%%~za 表示获取文件的大小(以字节为单位),
%%~na 表示获取文件名,
%%~xa 表示获取后缀名(带点号)
如%%~nxa 表示获取文件名和后缀名。
%%a是 for循环里面用的变量形式,在cmd中是%a,
但批处理中需要用%%a来表示。
/l 是 for 的一个参数,表示排序。
第一个 1 是起始,最后的 10 是结束,中间的 1 是正序(-1表示倒序)
命令行环境下,在for命令in前,后面接一个字符(可以是字母、数字或者一些特定字符),表示指定一个循环或者遍历指标变量。
① 批处理中,在for语句的in子句之前,连续两个%紧跟一个(可以是字母、数字和一些特定字符),表示指定一个循环或者遍历指标变量。
③ 批处理中,在for语句中,使用与in之前指定的指标变量相同的串,表示引用这个指标变量。
① 界定符,在表示带有空格的路径时常要用 "" 来将路径括起来,在一些命令里面也需要" "符号。
代表任意个字符,就是我们通常所说的"通配符";
比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:*.txt"。
我以前一直以为bat不能像Linux的shell一样设置函数并且调用,事实上我发现这是可以的。不过由于批处理的特性是一行一行执行的,这种label的函数必须要写在文本的最后。如果写在了批处理命令的前面,bat会逐行运行里面的命令的。写在文档的最后面,并且在“函数区域”前跳过这些代码。
(顺便吐槽一下,这种函数的写法和linux的shell很不一样,shell的function中的命令必须写在命令的前面,让shell逐行运行一次,才能在后面的命令中被人调用。)
::这个goto命令让批处理在运行的时候跳过所有函数的部分。
::从下面一行开始就是函数的部分,它们应该是bat脚本的最后部分,理论上不应该在下方再写任何的命令了。首先如同goto的命令一样,首先要先写一个lable