多くの bz2 アーカイブを含むサブディレクトリでいっぱいの「input」というディレクトリがあります。そのようです:
-input
--folder1
---archive1.bz2
----archive1.content
---archive2.bz2
----archive2.content
---archive3.bz2
----archive3.content
--folder2
---archive4.bz2
----archive4.content
---archive5.bz2
----archive5.content
---archive6.bz2
----archive6.content
内部ファイル構造を保持しながら、各アーカイブの内容を新しい「出力」フォルダーに抽出するWindowsバッチスクリプトを作成しようとしているため、次のようになります。
-output
--folder1
---archive1.content
---archive2.content
---archive3.content
--folder2
---archive4.content
---archive5.content
---archive6.content
これまでのところ、次のスクリプトがあります。
for /R "C:\Users\Ed\Desktop\input" %%I in ("*.bz2") do (
"%ProgramFiles%\WinRAR\WinRAR.exe" x "%%I" *.* "C:\Users\Ed\Desktop\output"
)
抽出は機能しますが、内容がフォルダー 1、フォルダー 2 などにパッケージ化されません。
各アーカイブの親フォルダーに新しいフォルダーを作成し、それを出力ディレクトリとして設定する必要があるように感じます。このようなもの:
for /R "C:\Users\Ed\Desktop\input" %%I in ("*.bz2") do (
mkdir "C:\Users\Ed\Desktop\output\parent folder of %%I"
"%ProgramFiles%\WinRAR\WinRAR.exe" x "%%I" *.* "C:\Users\Ed\Desktop\output\parent folder of %%I"
)
しかし、親フォルダー名を取得するにはどうすればよいでしょうか?