【问题标题】:Append Command From One Batch to another将命令从一批附加到另一批
【发布时间】:2013-07-15 15:39:33
【问题描述】:

我正在尝试编写一个批处理文件,该文件将使用“MOVE”命令将新行写入第二个批处理文件。对于使用我们软件的每台 PC,我们都有一个带有 MOVE 命令的主批处理文件,因此我们可以将记录备份到网络驱动器(计划每天运行)。本地 PC 上的数据会在 20 天后被删除,我们需要创建一个地方来永久保存这些文件。不幸的是,这是保持数据备份的最佳方式,我只是试图自动化该过程,以使该过程对我的部门来说尽可能简单。我正在尝试下面的命令,但我认为这是引号的问题。任何帮助将不胜感激,谢谢!

    :START 

    ECHO.
    SET /p pcid=Please enter the PCID that you would like to setup for Auto-Archiving:
        IF "%pcid%"=="%%" (GOTO CONFIRMPC)
        IF "%pcid%"=="exit" (GOTO END)

    :CONFIRMPC

    ECHO.
    ECHO Please verify that "%pcid%" is correct...
    ECHO.
    SET /p verify=Enter y/n...
        IF "%verify%"=="y" (GOTO SETUPAUTOARC)
        IF "%verify%"=="n" (GOTO START)
        IF "%verify%"=="%%" (GOTO VERIFYERROR)
        IF "%verify%"=="exit" (GOTO END)

    :VERIFYERROR

    ECHO.
    ECHO Please enter a valid (y/n) response...
    (GOTO CONFIRMPC)

    :SETUPAUTOARC

    ECHO.
    ECHO Creating directory...
    MKDIR "\\server32\e$\Backup Data\%pcid%"
    ECHO.
(HERE IS WHERE I'M RUNNING INTO TROUBLE)
    ECHO "MOVE "\\%pcid%\C$\Program Files\Application\Data\*.xml" > "\\server32\c$\scripts\masterbackup.bat
    ECHO.
    SET /p endresp=Finished! Would you like to run another PCID? (y/n)
        IF "%endresp%"=="y" (GOTO START)
        IF "%endresp%"=="n" (GOTO END)

    :END

    exit

【问题讨论】:

    标签: batch-file copy set append backup


    【解决方案1】:
    ECHO "MOVE "\\%pcid%\C$\Program Files\Application\Data\*.xml" > "\\server32\c$\scripts\masterbackup.bat
    ---- ^ Remove this quote and add an extra waaaaay up at the very end...................................^.here
    

    语法是ECHO string > file

    引号应该平衡,并且需要放在包含空格(等)的任何(完整)文件名周围

    还要注意> 会将数据写入NEW 文件,删除现有文件(如果有)。使用>> 追加到现有文件。


    话虽如此,命令所做的只是放置或添加一行

    MOVE "\\%pcid%\C$\Program Files\Application\Data\*.xml"
    

    到文件"\\server32\c$\scripts\masterbackup.bat"

    这似乎不是特别合理。您不应该将文件集MOVEing 到某个地方并将 that move 命令附加到批处理中吗?

    【讨论】:

    • 我只想将该新行附加到现有批处理中,这样当它运行时,将有一个用于刚刚添加的 PC 的 MOVE 命令。我需要那台 PC 位于该文件每天运行的现有批处理文件 b/c 中。
    • 所以使用>> 而不是>。我无法准确建议您的 move 命令应该是什么。 PCID 应该在变量pcid 的行中替换,但我不知道您建议的目的地应该是什么。
    • 是的,我将 > 替换为 >> 并编辑了引号,效果很好。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-07-21
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多