使用批处理脚本解压缩文件

时间:2014-11-20 10:47:21

标签: batch-file

我在E驱动器中有一个Nirmal.zip文件 假设我单独提取文件的基本名称“Nirmal”并从中创建一个文件夹。 现在存在一个名为Nirmal的文件夹和名为Nirmal.zip的zip文件 我需要提取Nirmal.zip的内容并将其放入新创建的Nirmal文件夹中。

如何使用批处理脚本执行上述操作

1 个答案:

答案 0 :(得分:1)

Windows不包含unzip.exe或任何其他类似的用于解压缩文件的控制台可执行文件。如果您愿意,可以使用Shell.ApplicationJScriptVBscript使用@if (@a==@b) @end /* :: unzip.bat :: usage: unzip.bat zipfile.zip :: extracts zipfile.zip to .\zipfile\ :: begin batch portion @echo off setlocal if "%~1"=="" ( echo Usage: %~nx0 filename.zip goto :EOF ) cscript /nologo /e:jscript "%~f0" "%~f1" echo( echo Unzipping complete. goto :EOF :: end batch portion :: begin JScript portion */ // https://gist.github.com/889769 // slightly modified by rojo for http://stackoverflow.com/a/27049936/1683264 function unzip(zipfile, unzipdir) { var fso = new ActiveXObject('Scripting.FileSystemObject'), shell = new ActiveXObject('Shell.Application'), dst, zip; if (!unzipdir) unzipdir = '.'; if (!fso.FolderExists(unzipdir)) fso.CreateFolder(unzipdir); dst = shell.NameSpace(fso.getFolder(unzipdir).Path); zip = shell.NameSpace(fso.getFile(zipfile).Path); for (var i=0; i<zip.Items().Count; i++) { try { if (fso.FileExists(zipfile)) { WSH.Stdout.Write('Unzipping ' + zip.Items().Item(i) + '... '); dst.CopyHere(zip.Items().Item(i), 4 + 16); WSH.Echo('Done.'); } } catch(e) { WSH.Echo('Failed: ' + e); } } } var zipfile = WSH.Arguments(0), dest = zipfile.replace(/\.\w+$/, '\\'); unzip(zipfile, dest); 编写脚本。

本着彻底的精神,这是一个Windows批处理/ JScript混合脚本,可以满足您的要求:

{{1}}