Я пытаюсь запустить пакетный скрипт на моем локальном компьютере, который позаботится о архивировании журналов на некоторых серверах.Я могу получить доступ к серверам через файловый менеджер "\ SERVERNAME \ C $ \ SOME FOLDER."Когда я пытаюсь скопировать данные из источника в место назначения локально и добавить временную метку, например, переменная TIMESTAMP не сохраняет мою конкатенацию даты / времени.
Это для серверов windows 2012r2, я пытался добавитьпросто дата \ время до конца, которая работает нормально, однако, это не тот формат, который я ищу, и он начинает вложение каталога с датой, но без времени, и это выглядит как беспорядок.: (
Я также пытался использовать wmic, однако я впервые пишу командный файл для автоматизации некоторых задач, поэтому все это было очень полезно для обучения.
Iя пытался echo %TIMESTAMP%
и ничего не возвращается? Я даже пытался добавить конкатенацию (%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%)
непосредственно в каталог файлов, и она не работает: (
REM Check to see if a service on the machine is stopped (it is always stopped by the time it gets here) before we move the files from the logging directory to a new one.
for /F "tokens=3 delims=: " %%H in ('sc \\REMOTESERVER query "SOME SERVICE NAME" ^| findstr " STATE"') do (
if /I "%%H" == "STOPPED" (
REM substring the date and time and then concat it together at the end to make the desired timestamp variable
set CUR_YYYY = %date:~10,4%
set CUR_MM = %date:~4,2%
set CUR_DD = %date:~7,2%
set CUR_HH = %time:~0,2%
set CUR_NN = %time:~3,2%
set CUR_SS = %time:~6,2%
set CUR_MS = %time:~9,2%
set TIMESTAMP = %CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%
REM copy files from the servers source directory and then move the files to a newly created logging folder with a timestamp appened at the end
echo d | xcopy /f /y "\\REMOTE SERVER\src" "\\REMOTE SERVER\dest\Logging_%TIMESTAMP%" /E /I
REM delete the contents of the servers source directory to keep things nice and clean
pushd \\REMOTE SERVER\src && del . /F /Q popd
)
)
Ожидаемый результат будет выглядетьНапример: SourceFolder на сервере будет, но в пустом DestinationFolder будет создана новая папка Logging Logging_20190325010101, и во вновь созданной папке Logging должно быть все содержимое из SourceFolder.