如何使用for循环遍历目录中的每个文件?
我如何判断某个条目是一个目录还是一个文件?
如何使用for循环遍历目录中的每个文件?
我如何判断某个条目是一个目录还是一个文件?
当前回答
下面的代码在当前目录中创建一个名为“AllFilesInCurrentDirectorylist.txt”的文件,其中包含当前目录中所有文件(仅为文件)的列表。看看吧
dir /b /a-d > AllFilesInCurrentDirectorylist.txt
其他回答
这将递归地列出当前目录及其子目录中的所有文件(仅是文件):
for /r %i in (*) do echo %i
此外,如果在批处理文件中运行该命令,则需要将%符号加倍。
for /r %%i in (*) do echo %%i
(感谢@agnul)
%1是传入的第一个参数,不能在迭代器中使用。
试试这个:
@echo off
for %%i in (*.*) do echo %%i
我使用xcopy命令和/L选项来获取文件名。所以如果你想获取一个目录或子目录下的所有文件,你可以这样做:
for /f "delims=" %%a IN ('xcopy "D:\*.pdf" c:\ /l') do echo %%a
我只是使用c:\作为目标,因为它一直存在于windows系统中,而且它不会复制,所以没关系。如果你也想要子目录,只需在最后使用/s选项。如果出于其他原因需要xcopy的其他开关,也可以使用它们。
我很难让jop的答案与绝对路径一起工作,直到我发现这个参考:https://ss64.com/nt/for_r.html
下面的示例循环遍历一个由绝对路径给出的目录中的所有文件。
For /R C:\absoulte\path\ %%G IN (*.*) do (
Echo %%G
)
遍历…
...当前目录下的文件:for %f in (.\*) do @echo %f ...subdirs in current dir: for /D %s in (.\*) do @echo %s .../R %f在(.\*)做@echo %f .../R /D %s in (.\*) do @echo %s
不幸的是,我没有找到同时遍历文件和子dirs的任何方法。
只需使用cygwin及其bash即可获得更多功能。
除此之外:你有没有注意到,MS Windows的内置帮助是描述cmd命令行的语法的一个很好的资源?
也可以在这里看看:http://technet.microsoft.com/en-us/library/bb490890.aspx