2009-11-05 206 views
0

我想用attrib <file path> +s +h隐藏多个文件,但它在第一个文件夹后停止。 我有这个...在cmd中执行多个命令?

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

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

回答

0

你缺少/ s标志

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 [文件夹] [属性转换]”,其中ATTRIB.EXE要 “ATTRIB [属性开关] [文件夹]” 代替。 感谢JimG的纠正。这个问题可能与我关于空间路径中缺少双引号的REM第二条语句有关。

有关ATTRIB.EXE更多信息,请在命令提示符下键入:

C:\> attrib /? 
+0

attrib与文件之后的开关一起工作良好。 – JimG 2009-11-05 19:13:41

+0

@JimG:谢谢你的纠正。我做了“attrib /?”,并且先指定了它们;不过,我刚刚测试过,你说得对。 :-) – 2009-11-05 20:15:53

0

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

CALL仅用于运行其他批处理文件,而不是.exe文件。