如何在批处理文件中使用多个命令

时间:2013-11-17 04:00:48

标签: batch-file

我是新手,并尝试制作一个简单的程序员,启动cm.exe,然后更改其驱动器号并更改该特定驱动器中所有文件的属性,并删除所有.link文件或快捷方式文件夹。

在cmd中,输入如下:

(Drive letter):
Attrib -r -s -a -h *.*
Del auto run.inf
Del *.lnk

如何在批处理文件中编写此命令。非常感谢(对不起我的英语。哈哈:3)

1 个答案:

答案 0 :(得分:1)

使用编辑器行Editplus或记事本++精确输入名为whateveryoulike.BAT的文件中的这些行。这是诀窍的.BAT部分。 (你也可以使用NOTEPAD但要小心 - 你需要保存为ANSI而NOTEPAD有习惯尝试格式化文本)

CMD提示符下,键入PATH。这将显示 ; 分隔的目录列表,搜索这些目录以尝试查找命令whateveryoulike。将whateveryoulike.BAT保存在该列表中的任何目录中。

严重的游戏者将添加一个包含批次的目录,并将该目录添加到路径中。

然后您需要做的就是在提示符下发出命令whateveryoulike,批处理文件将运行 - 就像您手动输入它包含的行一样。

添加一行是传统的

@echo off

在文件的开头,它在执行命令时禁止ECHO

添加

也是个好主意
SETLOCAL
之后的

命令,用于自动处理批处理完成后批处理可能对环境所做的更改。这是一个判断问题,但批量意外地改变变量可能会导致问题。

最后,批处理可以使用%n访问参数,其中n = 1..9所以如果你要撰写

@echo off
setlocal
set drive_letter=%1
%Drive_letter%:
Attrib -r -s -a -h *.*
Del auto run.inf
Del *.lnk

作为whateveryoulike.BAT并将其保存在PATH的目录中,然后从提示

whateveryoulike e

将执行您的一系列命令并将e指定为drive_letter。请注意访问变量的方法 - variablename

(但要小心!!!!!)

您可能更喜欢

@echo off
setlocal
set drive_letter=%1
if not defined drive_letter echo drive letter required&goto :eof
%Drive_letter%:
...

检查您是否确实指定了参数。请注意使用& 来分隔同一物理行和标签:eof上的命令(需要 )表示go to the end of the physical batchfile

最后 - 非常非常谨慎 - 您还可以使用DEL /s删除所有子目录attrib /s中的匹配文件,以更改匹配文件的属性在所有子目录(以及当前所有子目录,无论如何......) - 不适合胆小的人!