2009-11-05 215 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文件。