当然可以。Windows 的内置 ZIP 压缩功能可以通过编写脚本来实现自动化操作。以下是一个简单的批处理脚本示例,用于将指定文件夹中的所有文件压缩为一个 ZIP 文件:
@echo off
setlocal
set "source=%1"
set "destination=%2"
if not defined source (
echo Please specify a source folder.
exit /b 1
)
if not defined destination (
echo Please specify a destination ZIP file.
exit /b 1
)
if not exist "%source%" (
echo Source folder "%source%" does not exist.
exit /b 1
)
echo Compressing "%source%" into "%destination%"...
pushd "%source%"
rem Create the ZIP file
>nul 2>&1 (
set vbs="%temp%\_.vbs"
echo Set objArgs = WScript.Arguments > "%vbs%"
echo WScript.Echo objArgs(0) >> "%vbs%"
for /f "tokens=* delims=" %%a in ('cscript //nologo "%vbs%" "%source%"') do set "source_quoted=%%a"
del "%vbs%"
)
>nul 2>&1 (
set vbs="%temp%\_.vbs"
echo Set objArgs = WScript.Arguments > "%vbs%"
echo WScript.Echo objArgs(0) >> "%vbs%"
for /f "tokens=* delims=" %%a in ('cscript //nologo "%vbs%" "%destination%"') do set "destination_quoted=%%a"
del "%vbs%"
)
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory(%source_quoted%, %destination_quoted%); }"
popd
echo Done.
将上述脚本保存为一个 .bat 文件,然后在命令行中运行该脚本,指定源文件夹和目标 ZIP 文件路径即可。例如:
compress.bat "C:\source_folder" "C:\destination_folder\archive.zip"
这个脚本使用了 PowerShell 的 Add-Type
命令来加载 System.IO.Compression.FileSystem
程序集,然后调用 ZipFile.CreateFromDirectory
方法来创建 ZIP 文件。在脚本中,我们使用了一些技巧来处理文件路径中的空格和引号,以确保脚本可以正确处理各种路径。
领取专属 10元无门槛券
手把手带您无忧上云