msdos .bat文件中FOR循环的目录列表

时间:2013-02-08 03:02:03

标签: for-loop batch-file directory dos

我正在寻找如何获取FOR循环中使用的所有目录的列表。

到目前为止,我一直在努力:

set folderList = (folder1 folder2 folder3 folder4)
FOR %%i in %folderList% do zip %%i D:\...my_path...\%%i\*.*

是否有可能动态生成folderList?

3 个答案:

答案 0 :(得分:5)

假设您要列出c:\ temp

的子目录
for /f %%i in ('dir c:\temp /ad /b') do echo %%i

这将列出c:\ temp的foldernames,如果你想以递归方式获取它只需将/ s添加到dir命令:

for /f %%i in ('dir c:\temp /ad /b /s') do echo %%i

@dbenham评论(谢谢)正确处理dirs with space只需添加tokens = * to for:

 for /f "tokens=*" %%i in ('dir c:\temp /ad /b') do echo %%i

答案 1 :(得分:2)

请尝试以下代码:

for /d %%F in ("d:\...my_path...\*") do zip "%%~nxF" "%%F\*.*"

答案 2 :(得分:0)

我不确定有什么不同,但上面列出的双%%都无法正常工作。

然而,这对我有用:

for /f "tokens=*" %i in ('dir c:\temp /ad /b') do echo %I