如何创建批处理文件以将文件复制到具有完全访问权限的共享文件夹,然后将所有结果和错误记录到文件中?



我已经创建了下面的批处理文件,但没有成功。

@ECHO OFF
@ECHO "Backup process started."
@SET TARGET_FILES = "\pc1temp*.mdb"
@ECHO "TARGET_FILES:%TARGET_FILES%"
@SET DESTINATION_FOLDER = "\pc1tempBackups"
@ECHO "DESTINATION_FOLDER:%DESTINATION_FOLDER%"
@SET BACKUP_FOLDER = "Backup%date:~10,4%%date:~4,2%%date:~7,2%"
@ECHO "BACKUP_FOLDER:%BACKUP_FOLDER%"
@SET FINAL_FOLDER = "%DESTINATION_FOLDER%%BACKUP_FOLDER%"
MKDIR %FINAL_FOLDER%
@ECHO "DIRECTORY CREATED:%FINAL_FOLDER%"
XCOPY %TARGET_FILES% %FINAL_FOLDER% >> %FINAL_FOLDER%%BACKUP_FOLDER%.log
@ECHO "Backup process ended successfully."
@ECHO ON

环境:它将是C:\Windows\Tasks中使用Windows XP SP3 的计划任务

输出:

"Backup process started."
"TARGET_FILES:"
"DESTINATION_FOLDER:"
"BACKUP_FOLDER:"
The syntax of the command is incorrect.
"DIRECTORY CREATED:"
Invalid number of parameters
"Backup process ended successfully."

任何关于正确方向的指导都将不胜感激。

更新1:我注意到我的变量没有设置。

更新2:

@ECHO OFF
ECHO Backup process started.
set TARGET_FILES=\pc1temp*.mdb
ECHO TARGET_FILES "%TARGET_FILES%"
SET DESTINATION_FOLDER=\pc1tempBackups
ECHO DESTINATION_FOLDER "%DESTINATION_FOLDER%"
SET BACKUP_FOLDER=Backup%date:~0,4%%date:~5,2%%date:~8,2%
ECHO BACKUP_FOLDER "%BACKUP_FOLDER%"
SET FINAL_FOLDER=%DESTINATION_FOLDER%%BACKUP_FOLDER%
MKDIR "%FINAL_FOLDER%"
ECHO DIRECTORY CREATED "%FINAL_FOLDER%"
XCOPY "%TARGET_FILES%" "%FINAL_FOLDER%" >> "%FINAL_FOLDER%%BACKUP_FOLDER%.log"
ECHO Backup process ended successfully.
@ECHO ON

更新输出2:

Backup process started.
TARGET_FILES "\pc1temp*.mdb"
DESTINATION_FOLDER "\pc1tempBackups"
BACKUP_FOLDER "Backup20120214"
DIRECTORY CREATED "\pc1tempBackupsBackup20120214"
Backup process ended successfully.

日志

\pc1tempfile1.mdb
\pc1tempfile1_be.mdb
2 File(s) copied

使用新代码(UPDATES2),我已经成功地将所有mdb文件复制到目标文件夹,但我的所有回显消息都没有被记录。如何包含所有要记录的回复消息

我认为您需要添加

**cd /d %~dp0**   

("%~dp0"可以将运行时目录替换为批处理文件的完整路径)

在你的第一行。。

cd/d%~dp0表示cd/d:\currentfolder

更新:

好的,我想你只是想把你的文件从A复制到B。

我根据您的代码为您创建了一个示例。

我的文件夹在

D:Run
│  main.bat  >> the copy batch
│  
└─Test
    │  new.txt
    │  
    └─Backups
        └─20120214          >> created new folder

主.bat是

@ECHO OFF
cd /d %~dp0
ECHO Backup process started.
SET TARGET_FILES="Test*.txt"
ECHO TARGET_FILES:%TARGET_FILES%

SET DESTINATION_FOLDER=TestBackups%date:/=%
ECHO DESTINATION_FOLDER:%DESTINATION_FOLDER%
SET FINAL_FOLDER=%DESTINATION_FOLDER%
ECHO FINAL_FOLDER:%FINAL_FOLDER%
MD "%FINAL_FOLDER%"
ECHO "DIRECTORY CREATED:%FINAL_FOLDER%
XCOPY %TARGET_FILES% %FINAL_FOLDER%
ECHO Backup process ended successfully.
@ECHO ON

我希望它能帮助你。

最新更新