我正在寻找如何获取FOR循环中使用的所有目录的列表。
到目前为止,我一直在努力:
set folderList = (folder1 folder2 folder3 folder4)
FOR %%i in %folderList% do zip %%i D:\...my_path...\%%i\*.*
是否有可能动态生成folderList?
答案 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