Windows, не включает в себя unzip.exe
или любой другой подобный вид консольного исполняемого файла для распаковки файлов. Вы можете записать его с помощью Shell.Application
с JScript или VBscript, или даже PowerShell, если хотите.
В духе тщательности, вот партия Windows/JScript гибридный сценарий, который делает то, что вы спросите:
@if (@[email protected]) @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);
Пробовали ли вы '7z.exe', версия командной строки свободной [7-Zip] (http://www.7-zip.org)? – JosefZ
@NirmalAnand Если мой ответ был полезен, отметьте его как принятый. [См. Эту страницу] (http://meta.stackexchange.com/questions/5234/) для объяснения того, почему это важно. – rojo