У меня есть SourceDirectory (исходный каталог), BackupDestination (целевой каталог для резервного копирования) и DestinationLog (целевой каталог для журналов). При выполнении пакетного сценария цель заключается в том, чтобы заархивировать файл в исходном каталоге и сохранить его в резервном каталоге. Выходные данные, которые log , должны быть сохранены в файл .txt в папке DestinationLog. Имя файла журнала должно быть «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