我有一个名为“input”的目录,其中包含许多 bz2 档案的子目录。像这样:
-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"
)
但是如何获得父文件夹名称的句柄?