Batch processing 批处理:根据归档文件名称创建相对文件夹,然后在各自的文件夹中提取多个.rar归档文件
我将这些.rar/zip存档到Batch processing 批处理:根据归档文件名称创建相对文件夹,然后在各自的文件夹中提取多个.rar归档文件,batch-processing,winrar,Batch Processing,Winrar,我将这些.rar/zip存档到C:\test test1.rar test2.rar 在test1.rar里面我没有文件夹,只有文件,而在test2.rar里面我还有一个文件夹 我尝试将每个rar/zip归档文件提取到相关文件夹中,并将归档内容保存到C:\test2我想使用相同的存档名称作为相对文件夹名称 test1 <-- in this folder there are only files because test1.rar had not folders within test2
C:\test
test1.rar
test2.rar
在test1.rar
里面我没有文件夹,只有文件,而在test2.rar
里面我还有一个文件夹
我尝试将每个rar/zip归档文件提取到相关文件夹中,并将归档内容保存到C:\test2
我想使用相同的存档名称作为相对文件夹名称
test1 <-- in this folder there are only files because test1.rar had not folders within
test2 <-- content should extracted preserving structure folder inside archive
但是这个脚本效果很差
test1.rar
文件夹中的test1
内容之前,它不会创建test1
文件夹。它只是提取内容C:\test2
|
|--- test1 [folder]
| |
| |--a.txt
| |--b.txt
|
|--- test2 [folder]
|
|--simple [folder]
| |
| |- c.txt
|
|-d.txt
但是我得到了这个糟糕的输出
C:\test2
|
|
|--a.txt
|--b.txt
|--simple [folder]
| |
| |- c.txt
|
|-d.txt
解决办法就是这样。感谢@Mofi用于
-ad
开关
@echo off
set "SourceFolder=C:\temp"
set "TargetFolder=C:\temp2"
if not exist "%TargetFolder%" md "%TargetFolder%"
"C:\Program Files\WinRAR\Rar.exe" x -ad -cfg- -idq -r -y "%SourceFolder%\*.rar" "%TargetFolder%"
for /D %%D in ("%SourceFolder%\*") do rd "%%D" 2>nul
@echo off
set "SourceFolder=C:\temp"
set "TargetFolder=C:\temp2"
if not exist "%TargetFolder%" md "%TargetFolder%"
"C:\Program Files\WinRAR\Rar.exe" x -ad -cfg- -idq -r -y "%SourceFolder%\*.rar" "%TargetFolder%"
for /D %%D in ("%SourceFolder%\*") do rd "%%D" 2>nul