繁体   English   中英

使用批处理文件通过日志记录将文件复制到子目录中

[英]Copy the files in sub-directory with logging using batch file

我需要从子目录复制文件,然后使用批处理文件将其放置在特定的文件夹中。 我已经使用下面的查询实现了

FOR /R "SourceFolder" %%i IN (*.pdf, *.txt, *.doc) DO COPY "%%i" "DestinationFolder" /Y

我需要在日志文件中记录文件和路径。 我尝试了以下代码来实现,但没有用

FOR /R "SourceFolder" %%i IN (*.pdf, *.txt, *.doc) DO (COPY "%%i" "DestinationFolder" /Y echo %%i) >> logfile.log

FOR /R "SourceFolder" %%i IN (*.pdf, *.txt, *.doc) DO (COPY "%%i" "DestinationFolder" /Y echo %%i >> logfile.log)

FOR /R "SourceFolder" %%i IN (*.pdf, *.txt, *.doc) DO (echo %%i >> logfile.log COPY "%%i" "DestinationFolder" /Y)

这是一个示例批处理文件示例,可为您提供帮助:

@Echo Off
Set "Src=C:\Users\Venkatesh\Documents"
Set "Dst=D:\Backups\Venkatesh\Docs"
Set "Log=C:\Users\Venkatesh\Desktop\Output.log"
RoboCopy /S "%Src%" "%Dst%" *.doc *.pdf *.txt /XJ /NP /NC /LOG:"%Log%" /TEE
Pause

修改线的路径234所必需的环境,并选择最合适的选项根据从输出RoboCopy /?

这对于实现所需的日志记录是否可以接受? “ @”将禁止回显“ for”命令,但是循环的每次迭代都将回显所产生的命令(使用1%-%i-直接在命令窗口中键入时,在批处理脚本中使用%% i):

@echo on
@for /R "src" %%i IN (*.pdf *.txt *.doc) do copy "%%i" "dest" /Y >> logfile.log

或者,有两种方法可以更精确地完成您的工作。 “&”是命令外壳程序命令分隔符:

for /R "src" %%i IN (*.pdf *.txt *.doc) do (copy "%%i" "dest" /Y & echo %%i) >> logfile.log

或者命令可以出现在单独的行中:

for /R "src" %%i IN (*.pdf *.txt *.doc) do (
  copy "%%i" "dest" /Y
  echo %%i
) >> logfile.log

输入以“(”结尾的“ for”行后,shell将在等待命令结束时以“更多?”提示您,并以')'表示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM