Batch file Windows批处理到扩展名为.zip的zip文件

Batch file Windows批处理到扩展名为.zip的zip文件,batch-file,zip,compression,Batch File,Zip,Compression,我对这个环境很陌生,我的问题是,我使用7z压缩文件,但你能帮我了解一下如何使用.zip扩展名吗?由于我对批处理一无所知,所以我只创建了环境变量,可以将移动文件从一个复制到另一个。但获取一个zip扩展名的文件对我来说很难。我已经研究了很长时间了。我还有一个关于这个批处理的问题,我可以在我自己的电脑上运行Windows 7操作系统,但是我不能在我客户的电脑上运行这个脚本,因为我想在Microsoft SQL Server 2012上运行这个脚本,因为主文件夹的名称有空间,我也会出错 echo off

我对这个环境很陌生,我的问题是,我使用7z压缩文件,但你能帮我了解一下如何使用.zip扩展名吗?由于我对批处理一无所知,所以我只创建了环境变量,可以将移动文件从一个复制到另一个。但获取一个zip扩展名的文件对我来说很难。我已经研究了很长时间了。我还有一个关于这个批处理的问题,我可以在我自己的电脑上运行Windows 7操作系统,但是我不能在我客户的电脑上运行这个脚本,因为我想在Microsoft SQL Server 2012上运行这个脚本,因为主文件夹的名称有空间,我也会出错

echo off

if not exist "C:\Pack"  mkdir %genericPath%\Pack
if not exist "C:\ProAgent"  mkdir  %genericPath%\Pack\ProAgent
if not exist "C:\ProAgent1230" mkdir %genericPath%\Pack\ProAgent1230

xcopy /b /v /y /s  %genericPath%\Filter-Inventory\filter.ini %genericPath%\Pack\ProAgent
xcopy /b /v /y /s  %genericPath%\Filter-Inventory\pvinvent.ini %genericPath%\Pack\ProAgent
xcopy /b /v /y /s  %genericPath%\Registry\updateProAgent.reg %genericPath%\Pack\ProAgent1230
xcopy /b /v /y /s  %genericPath%\Files\$update$.bat %genericPath%\Pack\ProAgent1230
xcopy /b /v /y /s  %genericPath%\Files\runscript.vbs %genericPath%\Pack\ProAgent1230
xcopy /b /v /y /s  %genericPath%\Files\runupdate.bat %genericPath%\Pack\ProAgent1230
xcopy /b /v /y /s  %genericPath%\Files\updateAgent.cmd %genericPath%\Pack\ProAgent1230

:Archieve
set archievePatch= %genericPath%\Pack

7z.exe a %genericPath%\Pack "%archievePatch%" 

rmdir /s /q "%genericPath%\Pack"

PATH %genericPath%\FF

exit

您需要指定输出类型:

7z.exe a -tzip %genericPath%\Pack "%archievePatch%"\
或者:

7z.exe a %genericPath%\Pack.zip "%archievePatch%"\
(注意:源上的反斜杠是必需的,因为它表示文件夹)

签出这些站点:

7zip命令的示例:


压缩文件夹:

您需要指定输出类型:

7z.exe a -tzip %genericPath%\Pack "%archievePatch%"\
或者:

7z.exe a %genericPath%\Pack.zip "%archievePatch%"\
(注意:源上的反斜杠是必需的,因为它表示文件夹)

签出这些站点:

7zip命令的示例:


压缩文件夹:

谢谢您的帮助。我已经配置了脚本,现在可以使用下面给出的脚本获取Pack.zip。但是,我不能在客户的计算机上执行相同的操作。当我定义环境变量的特定路径时,它不起作用。目标文件夹位于名为Win Nix的主文件夹中,当我尝试创建此zip文件时,它只会创建一个名为Nix的文件,没有zip,没有复制的文件。我怎样才能解决这个问题

谢谢

echo off

    if not exist "C:\Pack" mkdir %genericPath%\Pack
    if not exist "C:\ProAgent" mkdir %genericPath%\Pack\ProAgent
    if not exist "C:\ProAgent1230" mkdir %genericPath%\Pack\ProAgent1230

    xcopy /b /v /y /s %genericPath%\Filter-Inventory\filter.ini %genericPath%\Pack\ProAgent
    xcopy /b /v /y /s %genericPath%\Filter-Inventory\pvinvent.ini %genericPath%\Pack\ProAgent
    xcopy /b /v /y /s %genericPath%\Registry\updateProAgent.reg %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\$update$.bat %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\runscript.vbs %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\runupdate.bat %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\updateAgent.cmd %genericPath%\Pack\ProAgent1230


    set archievePatch= %genericPath%\Pack


    echo Set objArgs = WScript.Arguments > _zipIt.vbs
    echo InputFolder = objArgs(0) >> _zipIt.vbs
    echo ZipFile = objArgs(1) >> _zipIt.vbs
    echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> _zipIt.vbs
    echo Set objShell = CreateObject("Shell.Application") >> _zipIt.vbs
    echo Set source = objShell.NameSpace(InputFolder).Items >> _zipIt.vbs
    echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipIt.vbs
    echo wScript.Sleep 2000 >> _zipIt.vbs

    CScript  _zipIt.vbs  %archievePatch%  %genericPath%\Pack.zip
    rmdir /s /q "%genericPath%\Pack"
    exit

谢谢你的帮助。我已经配置了脚本,现在可以使用下面给出的脚本获取Pack.zip。但是,我不能在客户的计算机上执行相同的操作。当我定义环境变量的特定路径时,它不起作用。目标文件夹位于名为Win Nix的主文件夹中,当我尝试创建此zip文件时,它只会创建一个名为Nix的文件,没有zip,没有复制的文件。我怎样才能解决这个问题

谢谢

echo off

    if not exist "C:\Pack" mkdir %genericPath%\Pack
    if not exist "C:\ProAgent" mkdir %genericPath%\Pack\ProAgent
    if not exist "C:\ProAgent1230" mkdir %genericPath%\Pack\ProAgent1230

    xcopy /b /v /y /s %genericPath%\Filter-Inventory\filter.ini %genericPath%\Pack\ProAgent
    xcopy /b /v /y /s %genericPath%\Filter-Inventory\pvinvent.ini %genericPath%\Pack\ProAgent
    xcopy /b /v /y /s %genericPath%\Registry\updateProAgent.reg %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\$update$.bat %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\runscript.vbs %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\runupdate.bat %genericPath%\Pack\ProAgent1230
    xcopy /b /v /y /s %genericPath%\Files\updateAgent.cmd %genericPath%\Pack\ProAgent1230


    set archievePatch= %genericPath%\Pack


    echo Set objArgs = WScript.Arguments > _zipIt.vbs
    echo InputFolder = objArgs(0) >> _zipIt.vbs
    echo ZipFile = objArgs(1) >> _zipIt.vbs
    echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> _zipIt.vbs
    echo Set objShell = CreateObject("Shell.Application") >> _zipIt.vbs
    echo Set source = objShell.NameSpace(InputFolder).Items >> _zipIt.vbs
    echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipIt.vbs
    echo wScript.Sleep 2000 >> _zipIt.vbs

    CScript  _zipIt.vbs  %archievePatch%  %genericPath%\Pack.zip
    rmdir /s /q "%genericPath%\Pack"
    exit

sql server什么时候开始能够运行批处理文件了?你能用一个简单的例子解释一下你想要实现什么吗?我的意思是我们有一个监控软件,它可以分发文件。但我想用拉链分发这个包裹。我用规则和工作来做这件事。正在创建作业以运行此批处理和zip文件,在那之后,我需要另一个任务来分发。我想压缩文件/Pack/,但扩展名不是7zip或rar。我相信这一个会有帮助:sql server什么时候开始能够运行批处理文件了?你能用一个简单的例子解释一下你想要实现什么吗?我的意思是我们有一个监控软件,它可以分发文件。但我想用拉链分发这个包裹。我用规则和工作来做这件事。创建一个作业来运行此批处理和压缩文件,然后再创建另一个作业来分发。我想压缩文件/Pack/,但扩展名为.zip,而不是7zip或rar。我相信这会有帮助:嘿,但它只是更改了扩展名?因为当我进入zip文件时,我没有看到一个名为Pack:)的文件夹。我忽略了您命令中的另一个问题。您需要通过在末尾添加反斜杠()来指定源是文件夹,而不是文件。我更新了我的帖子以反映这一点。嘿,但它只是更改了扩展名?因为当我进入zip文件时,我没有看到一个名为Pack:)的文件夹。我忽略了您命令中的另一个问题。您需要通过在末尾添加反斜杠()来指定源是文件夹,而不是文件。我更新了我的帖子以反映这一点。