У меня есть несколько папок, содержащих ресурсы (в каждой папке есть подпапки, содержащие эти активы .mp3, .txt, .png и т.д.). Я хочу скопировать все эти активы вместе с подпапкой в одну папку / папку. Мне удалось успешно запустить команду robocopy для копирования ресурсов вместе с подпапками из одной папки в другую:
robocopy source target /s
Я буду запускать планировщик один раз в день для копирования ресурсов. Также я хотел сохранить имя всех скопированных ресурсов в файле журнала. Имя файла журнала должно быть в форме
log_currentDate.txt
например, если сегодняшняя дата 20 октября 2015 года ... имя файла журнала должно быть:
log_20151020.txt
На следующий день, т.е. 21 октября 2015 года, должно быть:
log_20151021.txt
Этот файл журнала должен содержать имена всех скопированных ресурсов 20 октября 2015 года, 21 октября 2015 года и т.д. Я создал пакетную команду (благодаря @DavidPostill) для создания журнала следующим образом:
@echo off
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (
set _date=%%a%%b%%c
)
echo robocopy source target /log:D:\ABC\log%_date%.txt
Это создает журнал с именем «logTue2010.txt» (т. Е. Формат logdayddmm). Проблема:
- Где хранится этот файл журнала? Чтобы сделать этот файл журнала видимым, мне приходится каждый день писать отдельную команду:
исходная цель robocopy /log:D:\ABC\logWed1021.txt /tee /s
- Как мне обеспечить, чтобы отдельная копия журнала получалась каждый день?
- Также с текущей командой, файл журнала содержит весь вывод, отображаемый в окне cmd. Я просто хочу, чтобы он содержал название актива с его расширением.
РЕДАКТИРОВАТЬ 1: с помощью следующей пакетной команды мне удалось решить проблему, связанную с форматом имени файла журнала:
@ECHO OFF
for /f %%a in ('wmic os get LocalDateTime ^| findstr ^[0-9]') do (set ts=%%a)
ECHO %ts:~0,8%_%ts:~8,4%
echo robocopy ship shore /log:D:\HAL\log\log_%ts:~0,8%_%ts:~8,4%.txt
robocopy Ship Shore /log:D:\HAL\log\log_%ts:~0,8%_%ts:~8,4%.txt /S
Также эта пакетная команда работала также:
@echo off
for /f "tokens=2 delims==" %%G in ('wmic OS get LocalDateTime /value') do set "_date=%%G"
set "_date=%_date:~0,8%"
echo robocopy ship shore /log:D:\HAL\log\log_%_date%.txt
robocopy ship shore /log:D:\HAL\log\log_%_date%.txt /S
Однако другие вопросы, которые здесь задаются, остаются без ответа.