2014-12-05 41 views

回答

0

您需要在/ R後,立即指定的基本目錄。無論在括號中指定什麼,都會附加到樹中的每個子目錄。所以,你可以使用.得到目錄本身:

for /R %INPUT% %%F in (.) do (...) 

另外,我剛剛發現了一個奇怪的是,如果你使用enabledelayedexpansion語法,那麼它不工作;它只執行基本目錄的for主體,而不是任何子目錄。因此,以下方法無效,無論您是否啓用了delayedexpansion:

for /R !INPUT! %%F in (.) do (...) 

Dosbatch的另一個怪癖。

編輯:爲了解決您的評論,它成爲有關什麼...包含。這應該工作,如果你想獲得兩個包含在當前迭代目錄中的當前迭代的目錄和文件屬性:

for /R %INPUT% %%F in (.) do (attrib %%F& attrib %%F\*) 

編輯:這是另一個潛在的解決方案,這將可能比較慢,但是在其他手可能會使代碼更易於編寫。但在另一方面,這將有空白問題的文件名:

for /f %%i in ('dir /b /s %INPUT%') do (attrib %%i) 
+0

謝謝,但沒有不工作。它顯示主目錄和子目錄的讀/寫屬性,但不顯示文件。 是的,我有enabledelayedexpansion設置...哪(老實說)我不熟悉。 – 2014-12-05 22:03:19

+0

也許我的套裝是錯的?設置INPUT = C:\ Filenet \ Work \ Current \ IDCMS1 \ IM \ Cloud \ Services \ Cloudant在末尾添加\\ *什麼也不做。 – 2014-12-05 22:07:38

+0

讓我知道這些解決方案是否適合您。 – bgoldst 2014-12-05 22:55:01

0

有什麼特別的原因,你不使用

attrib /s "%input%" 

Wheter輸入的格式爲「C:\路徑\ filemask.ext「

+0

是的原因是我想要一些條件處理。如果attrib是讀寫的,我想要GOTO:批處理的其他部分。 – 2014-12-08 23:12:44

相關問題