如何使用for循环遍历目录中的每个文件?
我如何判断某个条目是一个目录还是一个文件?
如何使用for循环遍历目录中的每个文件?
我如何判断某个条目是一个目录还是一个文件?
当前回答
for %1 in (*.*) do echo %1
在cmd中尝试“HELP FOR”以获得完整的指南
这是XP命令的指南。http://www.ss64.com/nt/
其他回答
for %1 in (*.*) do echo %1
在cmd中尝试“HELP FOR”以获得完整的指南
这是XP命令的指南。http://www.ss64.com/nt/
试试这个:
::Example directory
set SetupDir=C:\Users
::Loop in the folder with "/r" to search in recursive folders, %%f being a loop ::variable
for /r "%SetupDir%" %%f in (*.msi *.exe) do set /a counter+=1
echo there are %counter% files in your folder
它会计算目录(以及子目录)中的。msi和。exe文件。因此,作为可执行文件的文件夹和文件之间也有区别。
如果需要过滤循环中的其他文件,只需添加一个扩展名(.pptx .docx ..)
%1是传入的第一个参数,不能在迭代器中使用。
试试这个:
@echo off
for %%i in (*.*) do echo %%i
这个for循环将列出目录中的所有文件。
pushd somedir
for /f "delims=" %%f in ('dir /b /a-d-h-s') do echo %%f
popd
"delims="用于显示包含空格的长文件名....
'/b"只显示名称,不显示大小日期等。
关于dir's /a参数需要了解的一些事情。
使用“/a”会列出所有内容,包括隐藏属性和系统属性。 “/ad”只显示子目录,包括隐藏目录和系统目录。 "/a-d"参数消除带有'D'irectory属性的内容。 "/a-d-h-s"将显示所有内容,但包含'D'irectory, 'H'idden 'S'ystem属性的条目除外。
如果在命令行上使用此命令,请删除“%”。
希望这能有所帮助。
遍历…
...当前目录下的文件: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