0

我正在尝试编写一个批处理文件,该文件将使用“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
4

1 回答 1

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

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

另请注意,这>会将数据写入文件,删除现有文件(如果有)。用于追加>>到现有文件。


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

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

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

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

于 2013-07-15T15:53:44.440 回答