首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows的内置ZIP压缩可以编写脚本吗?

当然可以。Windows 的内置 ZIP 压缩功能可以通过编写脚本来实现自动化操作。以下是一个简单的批处理脚本示例,用于将指定文件夹中的所有文件压缩为一个 ZIP 文件:

代码语言:txt
复制
@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 文件路径即可。例如:

代码语言:txt
复制
compress.bat "C:\source_folder" "C:\destination_folder\archive.zip"

这个脚本使用了 PowerShell 的 Add-Type 命令来加载 System.IO.Compression.FileSystem 程序集,然后调用 ZipFile.CreateFromDirectory 方法来创建 ZIP 文件。在脚本中,我们使用了一些技巧来处理文件路径中的空格和引号,以确保脚本可以正确处理各种路径。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券