创建批处理脚本来解压缩文件而无需额外的 zip 工具 [英] creating batch script to unzip a file without additional zip tools
问题描述
我正在尝试为 windows 7 x64 制作一个 .bat 脚本来创建一个文件夹,将文件解压缩到该文件夹中,而无需使用 7zip 或 unzip 等附加插件.一直在搜索,似乎 Windows 没有内置命令可以轻松地在命令中解压缩.我可以在没有附加插件的情况下解压缩/扩展文件吗?
I'm trying to make a .bat script for windows 7 x64 to create a folder, unzip a file into that folder without having to use additional addons like 7zip or unzip. Been searching and it seemed like windows doesn't have builtins to allow unzip easily in command. Can I unzip/expand files without additional addons?
推荐答案
试试这个:
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:Temp" "c:path oatch.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%
修订
让它对每个 zip 文件执行解压缩,为每次使用创建一个文件夹:
To have it perform the unzip on each zip file creating a folder for each use:
@echo off
setlocal
cd /d %~dp0
for %%a in (*.zip) do (
Call :UnZipFile "C:Temp\%%~na" "c:path o\%%~nxa"
)
exit /b
如果您不希望它为每个 zip 创建一个文件夹,请更改调用 :UnZipFile "C:Temp\%%~na" "c:path o\%%~nxa"
调用 :UnZipFile "C:Temp" "c:path o\%%~nxa"
If you don't want it to create a folder for each zip, change
Call :UnZipFile "C:Temp\%%~na" "c:path o\%%~nxa"
to
Call :UnZipFile "C:Temp" "c:path o\%%~nxa"
这篇关于创建批处理脚本来解压缩文件而无需额外的 zip 工具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!