【问题标题】:Make zip archives of files in a txt list - with folder structure via Bat File在 txt 列表中制作文件的 zip 存档 - 通过 Bat File 使用文件夹结构
【发布时间】:2013-11-12 09:56:54
【问题描述】:

我该怎么做。我用for循环试过了,但效果不好。

有人可以帮助我吗? (对不起我的英语)

代码如下:

@echo.
@set h=%time:~0,2%
@set m=%time:~3,2%
@set s=%time:~6,2%

@set ARCDATE=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
@set LISTE=C:/BatchDateiHotfix/list.txt
@set SAVELOC=C:\Users\gkrobath\Desktop\BatchDateiHotfix\310
@set SITOS=C:\SVN_Check\SITOS_3_10\html
@set SVNUPDATE=C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
@set PACK="C:\Program Files\7-Zip\7z.exe" a
rem @set PACK="C:\Program Files\WinRAR\Rar.exe" a -r

@cd %SITOS%

@set /p KUNDE=Kundennamen eingeben ........... 
@echo.
@set /p NMR=TMS/OIS-Nummern eingeben ..... 

@set FILE="%SAVELOC%/%KUNDE%_hotfix_%NMR%_%ARCDATE%.zip"
@set HOTFIX=%PACK% %FILE%

@for /F %%a in (%LISTE%) do (
if not exist %%a goto errors else 
@%HOTFIX% %%a)

希望任何人都可以帮助我。-)

【问题讨论】:

  • 在提出任何建议之前,我们需要先查看您的代码
  • 你面临的错误是什么
  • 所以它归结为最后一行:您使用一些参数调用您的打包程序。如果您使用您认为脚本应该传递的参数手动调用它,它会起作用吗?
  • 它不会生成 zip 文件 - 有时会生成,但它只是其中列表中的一个随机文件。没有特殊错误或警告
  • @AlexanderKosube 是的,当我使用参数手动调用它时它可以工作

标签: windows batch-file zip 7zip


【解决方案1】:

这个语法应该可以帮助你,但它会在文件不存在的任何错误时退出循环。

@for /F "delims=" %%a in (%LISTE%) do (
   if not exist "%%~a" (
       goto errors
     ) else (
       @%HOTFIX% "%%~a"
   )
)

【讨论】:

    【解决方案2】:

    看起来您的代码将在 %%a 值是不存在的文件时立即退出。我没有看到“:errors”标签代码。

    不要使用goto errors,而是使用函数调用以便循环继续。

    :ErrNotExist
    echo.
    echo. The following file does not exist:
    echo. %~1
    echo.
    goto:eof
    

    然后把你的循环代码改成这样:

    @for /F %%a in (%LISTE%) do (
        if not exist %%a (
           CALL:ErrNotExist %%a 
        ) else (
           @%HOTFIX% %%a
        )
    )
    

    这至少会让您更接近于找出代码中发生的事情。

    【讨论】:

    • 错误:7-Zip 无法移动文件 rand_hotfix_rand_20131121.zip.tmp1 C:\Users\gkrobath\Desktop\BatchDateiHotfix\randstad/rand_hotfix_rand_20131121.zip Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichn法尔施。系统错误:Unbekannter Fehler
    • 错误:7-Zip 无法移动文件 rand_hotfix_rand_20131121.zip.tmp1 C:\Users\gkrobath\Desktop\BatchDateiHotfix\randstad/rand_hotfix_rand_20131121.zip 文件名、目录名或卷标错误。系统错误:未知错误
    • 我没有使用 7-Zip,但根据错误文本,它看起来像是一个系统文件,无法将文件移动到 zip 文件。尝试仅复制所需的选项。或者,您的路径或文件名可能有错误(例如,多余的空格、错误的斜杠等)。在您执行它们之前,echo 您的 "%HOTFIX%""%%a" 可能会有所帮助。将失败的行与成功的行进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2020-07-10
    相关资源
    最近更新 更多