Jus*_*ber 31 windows batch-file
我正在尝试为Windows 7 x64创建一个.bat脚本来创建一个文件夹,将文件解压缩到该文件夹中,而不必使用其他插件,如7zip或解压缩.一直在搜索,似乎Windows没有内置设备允许在命令中轻松解压缩.我可以在没有附加插件的情况下解压/扩展文件吗?
Mat*_*son 46
试试这个:
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Temp\" "c:\path\to\batch.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%
Run Code Online (Sandbox Code Playgroud)
调整
要让它在每个zip文件上执行解压缩,为每次使用创建一个文件夹:
@echo off
setlocal
cd /d %~dp0
for %%a in (*.zip) do (
Call :UnZipFile "C:\Temp\%%~na\" "c:\path\to\%%~nxa"
)
exit /b
Run Code Online (Sandbox Code Playgroud)
如果您不希望它为每个zip创建一个文件夹,请更改
Call :UnZipFile "C:\Temp\%%~na\" "c:\path\to\%%~nxa"为
Call :UnZipFile "C:\Temp\" "c:\path\to\%%~nxa"
以下是使用PowerShell的快速简单的解决方案:
powershell.exe -nologo -noprofile -command "& { $shell = New-Object -COM Shell.Application; $target = $shell.NameSpace('C:\extractToThisDirectory'); $zip = $shell.NameSpace('C:\extractThis.zip'); $target.CopyHere($zip.Items(), 16); }"
Run Code Online (Sandbox Code Playgroud)
这使用Explorer的内置提取功能,还将显示典型的提取进度窗口.第二个参数16来CopyHere回答与肯定的所有问题.
如果您具有PowerShell 5.0或更高版本(已预安装Windows 10和Windows Server 2016):
powershell Expand-Archive your.zip -DestinationPath your_destination
Run Code Online (Sandbox Code Playgroud)
以下是我对 Windows 中内置 zi/unzip(压缩/解压缩)功能的概述 -如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip )和解压缩(/ unzip )文件和文件夹?
要解压缩文件,您可以使用以下脚本:
zipjs.bat unzip -source C:\myDir\myZip.zip -destination C:\MyDir -keep yes -force no
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110840 次 |
| 最近记录: |