Mar*_*nix 2 batch command-line extract 7-zip
我想在一个完整的文件夹上批处理“Extract Here...”命令。每种类型的存档都应以存档文件的名称解压缩到当前文件夹中。我找到了一些仅用于 *.zip 的 BATCH 脚本,但我不在乎它是什么类型的存档,只要我的存档器可以打开它。
有谁知道什么样的归档器具有这样的批处理功能?我似乎无法在 7-zip 或 winrar 中找到它。
在伪:
Given folder x
foreach archiveFile in x or descendant of x
unzip archiveFile.extension >> "folder of archiveFile/archiveFile"
Run Code Online (Sandbox Code Playgroud)
更新
我仅针对 zip 文件尝试了以下操作:
dir /s /b *.zip > allzips.txt
for /F %%x in (allzips.txt) do unzip %%x
Run Code Online (Sandbox Code Playgroud)
哪里unzip还是未知函数。
编辑给定:使用批处理脚本。
您可能希望使用第三方 zip 工具(强烈推荐名为 7z.exe 的 7-ZIP 命令行版本)来完成此操作。
使用7z,语法如下:
7z <command> [<switch>...] <base_archive_name> [<arguments>...]
Run Code Online (Sandbox Code Playgroud)
提取命令将是:
7z e file.zip -y
Run Code Online (Sandbox Code Playgroud)
-y 开关假定对提取期间可能出现的任何问题(例如覆盖请求)回答“是”。
所以你的命令会读
CD "C:\Location\Of\ZipFiles"
FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /b *.zip`) DO (7z e "%%F" -y)
Run Code Online (Sandbox Code Playgroud)
如果要将它们输出到不同的位置,可以使用 -o 开关并指定目录:
7z e "%%F" -y -oC:\Some\Other\Folder\
Run Code Online (Sandbox Code Playgroud)
编辑:
要使用完整路径执行提取并仅指定所有 ZIP 存档,请使用以下命令:
7z x -tzip "C:\Location\of\zips\*"
Run Code Online (Sandbox Code Playgroud)
甚至更疯狂... C: 驱动器上的所有 ZIP 文件:
7z x -r -tzip "C:\*"
Run Code Online (Sandbox Code Playgroud)
编辑2:
使其与您的输出文件兼容,这是:
dir /s /b *.zip > allzips.txt
for /F %%x in (allzips.txt) do (7z x -tzip "%%x")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27671 次 |
| 最近记录: |