我有多个包含资源的文件夹(每个文件夹都有包含这些资产.mp3,.txt,.png等的子文件夹)。我想将所有这些资产与子文件夹一起复制到一个位置/文件夹。我能够成功运行robocopy命令来实现资产以及子文件夹从一个文件夹到另一个文件夹的复制:
robocopy source target /s
我将每天运行一次调度程序来复制资产。我还想将所有复制资产的名称存储在日志文件中。日志文件的名称应采用
log_currentDate.txt
例如,如果今天的日期是2015年10月20日...日志文件的名称应为:
log_20151020.txt
第二天即2015年10月21日,它应该是:
log_20151021.txt
此日志文件应包含2015年10月20日,2015年10月21日的所有复制资产的名称,依此类推。我创建了一个批处理命令(感谢@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
- 如何确保每天获得单独的日志副本?
- 此外,使用current命令,日志文件包含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
然而,此处提出的其他问题仍未得到答复。