我有 SourceDirectory(源目录)、BackupDestination(用于备份的目标目录)和 DestinationLog(用于日志的目标目录)。执行批处理脚本时,目的是将源目录中的文件压缩并保存到备份目录。作为日志的输出必须保存到 DestinationLog 文件夹中的 .txt 文件。日志文件的名称应为“BuildScript_V1_”,后跟当前日期和时间。当我执行批处理文件时,执行过程无限次运行。我是编程新手。即使在许多来源中都解决了类似的情况,我也无法弄清楚。
@echo off
SET SourceDirectory = C:\Users\Folder\Downloads\Batch_Files\Source\
SET BackupDestination = C:\Users\Folder\Downloads\Batch_Files\Backup
SET DestinationLog = C:\Users\Folder\Downloads\Batch_Files\Logs
set CUR_YYYY=%date:~10,4%
set CUR_MM=%date:~4,2%
set CUR_DD=%date:~7,2%
set CUR_HH=%time:~0,2%
if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%)
set CUR_NN=%time:~3,2%
set CUR_SS=%time:~6,2%
set CUR_MS=%time:~9,2%
set SUBFILENAME=%CUR_YYYY%-%CUR_MM%-%CUR_DD%_%CUR_HH%-%CUR_NN%-%CUR_SS%
CD /D "C:\Program Files\7-Zip"
FOR /F "TOKENS=*" %%F IN ('DIR /B /A-D "%SourceDirectory%"') DO (
7z.exe a "%BackupDestination%\%%~NF.zip" "%SourceDirectory%\%%~NXF"
)
xcopy /s "C:\Users\Folder\Downloads\Batch_Files\Source\" "C:\Users\Folder\Downloads\Batch_Files\Backup"
C:\Users\Folder\Desktop\Backup_Log.bat>C:\Users\Folder\Downloads\Batch_Files\Logs\BuildScript_V1_%SUBFILENAME%.log