Ema*_*ail 6 windows command-line batch-file 7-zip
我想提取文件夹及其子文件夹中的所有 .zip 和 .rars
结构是这样的:
MAIN_FOLDER
-A folder
- a.zip
-a.rar
-B folder
- b.zip
-b.rar
-C folder
....
...
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个,但没有用
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files\7-zip\7z.exe" x %%X
)
popd
)
Run Code Online (Sandbox Code Playgroud)
我使用 Windows 并安装了 7-Zip。
附加问题:是否可以将所有从最后一个子文件(a.rar、b.rar)中提取的文件保存在同一个文件夹(主文件夹)中?
Ste*_*ngs 12
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
)
Run Code Online (Sandbox Code Playgroud)
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
Run Code Online (Sandbox Code Playgroud)
这对命令返回的每个文件执行一个循环dir /b /s *.zip *.rar。该/s告诉dir递归到子目录和/b裸露的格式打印。
文件名存储在%%I变量中供以后使用。如果您在提示符下键入此内容,则可以%I改用。
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
Run Code Online (Sandbox Code Playgroud)
这将执行提取。该参数-o"%%~dpI"将文件提取到存档所在的同一目录中。其他选项:
-o"%%~dpI" — 提取到存档所在的目录中。
-o"%%~dpnI"— 在以存档命名的层次结构中创建一个新目录并在那里提取(即AFolder\archive.zip提取到AFolder\archive\)。
-o"%%~nI"— 在以存档命名的当前目录中创建一个新目录并在那里解压缩(即解压缩AFolder\archive.zip到.\archive\)。
省略-o参数 - 提取到当前目录。
C:\Temp>tree /F
Folder PATH listing
Volume serial number is 08A4-22E0
C:.
? batch.bat
?
????AFolder
? a.zip
?
????BFolder
? b.zip
?
????CFolder
c.zip
C:\Temp>batch.bat > nul
C:\Temp>tree /F
Folder PATH listing
Volume serial number is 08A4-22E0
C:.
? batch.bat
?
????AFolder
? a.zip
? a.zip.txt
?
????BFolder
? b.zip
? b.zip.txt
?
????CFolder
c.zip
c.zip.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37074 次 |
| 最近记录: |