以下代码(改编自https://stackoverflow.com/a/21709923/711006)解压缩名为" batchX.zip"的文件。保存在文件夹' Zipped'
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "D:\Unzipped\" "D:\Zipped\batchX.zip"
exit /b
:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs% echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%
但是,必须在批处理文件(batchX.zip)中提及文件名才能解压缩zip文件。
我们可以修改这个批处理代码,以便我们不需要提及名称,并且可以解压缩任何拉链文件吗?
另外,我们可以通过批处理代码解压缩.rar文件吗?
答案 0 :(得分:0)
我们可以修改这个批处理代码,以便我们不需要提及名称,并且可以解压缩任何拉链文件吗?
批处理文件可以使用parameters,就像其他脚本语言一样。批处理文件语法为%1
。
Call :UnZipFile "D:\Unzipped\" %1
然后使用参数:
调用批处理文件myscript.bat zipped-file.zip
另外,我们可以通过批处理代码解压缩.rar文件吗?
如果您有合适的二进制文件,请单击。您可以下载rar.exe
(WinRAR的一部分)并从批处理文件中使用它(有关详细信息,请参阅manual),例如。
rar e %1