For loop msdos.bat文件中for循环的目录列表
我正在寻找如何获得所有目录列表中使用的FOR循环 到目前为止,我一直致力于:For loop msdos.bat文件中for循环的目录列表,for-loop,batch-file,directory,dos,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?假设您要列出c:\temp的子目录 for /f %%i in ('dir c:\temp /ad /b') do echo %%i 这将列出c:\temp的
set folderList = (folder1 folder2 folder3 folder4)
FOR %%i in %folderList% do zip %%i D:\...my_path...\%%i\*.*
是否可能动态生成folderList?假设您要列出c:\temp的子目录
for /f %%i in ('dir c:\temp /ad /b') do echo %%i
这将列出c:\temp的文件夹名,如果您想递归地获取它,只需将/s添加到dir命令:
for /f %%i in ('dir c:\temp /ad /b /s') do echo %%i
至于@dbenham comment(谢谢)要正确处理带空格的dir,只需将tokens=*添加到for:
for /f "tokens=*" %%i in ('dir c:\temp /ad /b') do echo %%i
请尝试以下代码:
for /d %%F in ("d:\...my_path...\*") do zip "%%~nxF" "%%F\*.*"
我不知道有什么不同,但上面列出的双%%都不起作用 然而,这对我来说是可行的:
for /f "tokens=*" %i in ('dir c:\temp /ad /b') do echo %I
folder1 folder2 folder3文件夹是否在同一目录中?例如,所有文件夹都位于C:\中。如果文件夹名称中包含空格,则您发布的解决方案将无法正常工作。