我在E驱动器中有一个Nirmal.zip文件 假设我单独提取文件的基本名称“Nirmal”并从中创建一个文件夹。 现在存在一个名为Nirmal的文件夹和名为Nirmal.zip的zip文件 我需要提取Nirmal.zip的内容并将其放入新创建的Nirmal文件夹中。
如何使用批处理脚本执行上述操作
答案 0 :(得分:1)
Windows不包含unzip.exe
或任何其他类似的用于解压缩文件的控制台可执行文件。如果您愿意,可以使用Shell.Application
或JScript或VBscript使用@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}}