求文本多行并一行的BAT代码

在 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 

我要回帖

更多关于 用文本文档写代码运行不了 的文章

 

随机推荐