FORループで使用されるすべてのディレクトリのリストを取得する方法を探しています。
これまでのところ、回避策があります:
set folderList = (folder1 folder2 folder3 folder4)
FOR %%i in %folderList% do zip %%i D:\...my_path...\%%i\*.*
folderList が動的に生成される可能性はありますか?
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 のフォルダー名が一覧表示されます。再帰的に取得する場合は、dir コマンドに /s を追加するだけです。
for /f %%i in ('dir c:\temp /ad /b /s') do echo %%i
@dbenham コメント (ありがとう) のように、スペースを含むディレクトリを正しく処理するには、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\*.*"