使用“ 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

相关文章
相关标签/搜索