我正在尝试编写一个批处理文件,该文件将使用“MOVE”命令将新行写入第二个批处理文件。我们有一个带有MOVE命令的主批处理文件,用于使用我们软件的每台PC,因此我们可以将记录备份到网络驱动器(计划每天运行)。 20天后,本地PC上的数据将被删除,我们需要创建一个永久保存这些文件的位置。不幸的是,这是保持我们的数据备份的最佳方式,我只是尝试自动化流程,使我的部门尽可能轻松地完成流程。我正在尝试下面的命令,但我认为这是引号的问题。任何帮助将不胜感激,谢谢!
: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
答案 0 :(得分: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 文件,删除退出(如果有)。使用>>
APPEND 到现有文件。
话虽如此,所有命令都会放或添加一行
MOVE "\\%pcid%\C$\Program Files\Application\Data\*.xml"
到文件"\\server32\c$\scripts\masterbackup.bat"
这似乎并不特别合理。你不应该MOVE
将文件集move
到某个地方并将 {{1}}命令附加到批处理中吗?