在cmd中执行多个命令?

时间:2009-11-05 18:43:40

标签: batch-file cmd dos

我想隐藏attrib <file path> +s +h的多个文件,但它会在第一个文件夹后停止。 我有这个......

@ech off
attrib z:\test +s +h
attrib C:\Documents and Settings\Administrator\Desktop\test +s +h

是的,我有两个驱动器。但它会在第一个文件夹后停止执行。如何让它执行这两个命令。我知道call命令,但这是唯一的方法吗? DOS中没有这么大的缺陷,你不能在一个批处理文件中执行多个命令。

3 个答案:

答案 0 :(得分:1)

如果你没有犯错(你有 - 在DOS下,开关在文件夹之前),它应该可以正常工作。试试这个:

@echo off
REM Add /s after the *.* to include subfolders
attrib +s +h z:\test\*.*
REM Note the double quotes around paths that have embedded spaces
attrib +s +h "c:\Documents and Settings\Adminstrator\Desktop\Test\*.*"

同样,你的问题是你正在做“attrib [folder] [属性开关]”,其中attrib.exe想要“attrib [属性开关] [文件夹]”而不是。感谢JimG为了纠正。问题可能与我关于带空格的路径周围缺少双引号的第二个REM语句有关。

有关attrib.exe的详细信息,请在命令提示符下键入:

C:\> attrib /?

答案 1 :(得分:0)

你缺少/ S标志

答案 2 :(得分:0)

你的第二个命令不起作用,因为你没有引用带有空格的路径。要么是这样,要么在attrib.exe之前你的路径上有一个名为attrib.bat的批处理文件(但我怀疑是这种情况)。您可以使用attrib.exe而不仅仅是attrib。来测试它。

仅在运行其他批处理文件时才需要CALL,而不是.exe文件。