Answers:
首先,安装7-zip。
bat
在目录的根目录中创建一个文件,其中包含许多子目录,其中包含归档文件。然后将以下内容粘贴到:
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
)
启动蝙蝠,所有rar / zip文件都将解压缩到它们所在的文件夹中。
这是如何运作的?
FOR(D / r %% F in(“ *”)DO(
For循环遍历当前目录中的所有文件夹,并将路径放入变量中
%%F
。
推送%CD%
将当前目录放入内存。
cd %% F
将变量中的文件夹设置
%%F
为当前目录。
FOR %%X in (*.rar *.zip) DO (
对于当前文件夹中的
rar
和zip
文件,请执行以下操作:
"C:\Program Files\7-zip\7z.exe" x "%%X"
在文件上运行7-zip。
%%X
因为某些文件名中包含空格,所以需要使用引号引起来。
popd
返回到我们之前存储在内存中的上一个目录。
希望这对某人有用。
我在从Windows Vista运行脚本时遇到问题。当我运行代码时,什么都没有发生。我需要成为管理员才能运行脚本。当我右键单击.bat文件并“以管理员身份运行”时,它不起作用,因为它出于某种原因在system32文件夹中启动(如果我没记错的话)。要解决此问题,只需使用Windows环境变量(在此说明:Windows环境变量)%〜dp0切换回运行脚本的目录。
@echo on
cd %~dp0
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
)
确保没有* .rar或* .zip文件与脚本位于同一级别。他们应该下降一级。
我希望此评论对某人有所帮助。
但是,如果您正在运行Windows 64-bit
和7-Zip 32-bit
,则上述答案可以正常工作,正确的路径适用C:\Program Files (x86)\7-Zip
于7-Zip。以下是对我有用的脚本。
@echo on
cd %~dp0
FOR /D /r %%F in ("*") DO ( pushd %CD% cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files (x86)\7-zip\7z.exe" x %%X
)
popd
)