现在的位置: 首页 > 综合 > 正文

批处理实用技巧整理

2013年02月22日 ⁄ 综合 ⁄ 共 1174字 ⁄ 字号 评论关闭

 

1. 编码规范害死人^^

SET YEAR = 2006

ECHO %YEAR%

上面这段代码,虽然看上去干净整洁,但却无效,echo的时候啥也没输出。

经过比较其他正常批处理文件后发现,set=前后不能有空格,晕

也就是说要改成SET YEAR=2006 就对了

 

2. 按指定格式取得当前日期

REM 通过把系统定义的%DATE%变量,按照“/”符号拆分,分别得到年月日。

FOR /F "tokens=1,2,3,4 delims=/" %%I IN ("%DATE%") DO SET YEAR=%%I&& SET MONTH=%%J&& SET DAY=%%K

REM 使用年月日按指定格式组合成新的日期。

SET TODAY="%YEAR%-%MONTH%-%DAY%"

 

3. 取得包含或不包含关键词的文件列表

dir /b | find "XXX" 取得包含关键词XXX的文件名列表

dir /b | find /v "XXX" 取得不包含关键词XXX的文件名列表

 

4. 将信息保存或添加到文件

for/ > for.txt 取得包含FOR函数的说明的文件

dir /b > list.txt 取得当前目录下的文件列表

tree /f > tree.txt 取得当前目录结构文件

dir /b /s | find "XXX" > find.txt 取得当前目录及其所有子目录下含有关键词XXX的文件名全路径列表的文件

echo VARNAME = %VARNAME% >> vars.txt 执行一次在文件末尾增加一行echo输出内容。

 

5. 对文件列表中的文件进行统一操作

文件列表就是一个TXT文件,每行有一个文件名,可以是全路径或相对路径。

通过以上技巧34可以得到这样的文件列表,也可以自己编辑出这样的列表。

为了提高效率和自动化,可以对列表中的文件进行统一操作,如删除,复制,改名,移动等等,只要是可以接受文件名作为参数的操作都可以。

以删除为例

FOR /F %%I IN (del.txt) DO del %%I

 

6. 组合命令:&&&||的用法

&,连接nDOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。

copy a.txt b.txt /y & del a.txt

&&,把它前后两个命令组合起来当一个命令来用,从前往后依次执行,一旦发现出错后将不继续执行后面剩下的命令。

dir c:/ > a.txt && dir d:/ >> a.txt

||,在执行多条命令时,当遇到一个执行正确的命令就退出此命令组合,不再继续执行下面的命令。
dir 2006*.h || echo Didn't exist file 2006*.h & pause & exit

 

7. 在批处理中使用参数

%1, %2, %3 … 分别代表调用批处理命令时所用的参数。

 

8. 删除文件

删除文件前最好判断下文件是否存在,如

if exist C:/AD/*.gif del C:/AD/*.gif

如果删除时需要确认的话,可以用如下方法解决

echo y | del *.h

 

抱歉!评论已关闭.