使用「 for」循環遍歷目錄中的全部文件

如何使用for循環遍歷目錄中的每一個文件? spa

我怎麼知道某個條目是目錄仍是僅僅是文件? 命令行


#1樓

此for循環將列出目錄中的全部文件。 code

pushd somedir
for /f "delims=" %%f in ('dir /b /a-d-h-s') do echo %%f
popd

「 delims =」可用於顯示長文件名並帶有空格。 ip

'/ b「僅顯示名稱,不顯示大小日期等。 get

關於dir的/ a參數要了解的一些事情。 cmd

  • 任何使用「 / a」都會列出全部內容,包括隱藏屬性和系統屬性。
  • 「 / ad」將僅顯示子目錄,包括隱藏目錄和系統目錄。
  • 「 / ad」參數消除具備'D'irectory屬性的內容。
  • 「 / adhs」將顯示全部內容,但條目帶有'D'irectory,'H'idden'S'ystem屬性。

若是在命令行上使用此命令,請刪除「%」。 io

但願這能夠幫助。 for循環


#2樓

for %1 in (*.*) do echo %1

嘗試使用cmd中的「幫助」以獲取完整指南 file

這是XP命令的指南。 http://www.ss64.com/nt/ 循環


#3樓

%1引用傳入的第一個參數,不能在迭代器中使用。

嘗試這個:

@echo off
for %%i in (*.*) do echo %%i

#4樓

這將列出當前目錄中的全部文件(而且僅列出文件):

for /r %i in (*) do echo %i

另外,若是您在批處理文件中運行該命令,則須要將%符號加倍。

for /r %%i in (*) do echo %%i

(感謝@agnul)


#5樓

我將使用vbscript(Windows腳本宿主),由於在批處理中,我肯定您沒法肯定名稱是文件仍是目錄。

在vbs中,多是這樣的:

Dim fileSystemObject
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")

Dim mainFolder
Set mainFolder = fileSystemObject.GetFolder(myFolder)

Dim files
Set files = mainFolder.Files

For Each file in files
...
Next

Dim subFolders
Set subFolders = mainFolder.SubFolders

For Each folder in subFolders
...
Next

在MSDN上檢查FileSystemObject

相關文章
相關標籤/搜索