我需要从2个diff目录中获取日志文件,并根据logfilename上的一些条件将它们复制到同一个目标目录中。基于日志文件名获取日志的逻辑工作正常,并且它们被打印到控制台。
以下是脚本:
@ECHO OFF
for /f "delims=" %%F in (
dir /b "C:\temp1\*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.) do if "%%F" geq "20130101" if "%%F" lss "20130931" echo %%F
for /f "delims=" %%F in ('dir /b "C:\temp2\*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.) do if "%%F" geq "20130101" if "%%F" lss "20130931" echo %%F
pause "Please enter any key to continue"
现在,上面的脚本根据日期条件从c:\temp1
和c:\temp2
中导入日志文件,并使用echo
打印到控制台,但我希望将这些日志文件复制到目标目录中。我需要在哪里添加复制条件,以便将从c:\temp1
和c:\temp2
目录获得的日志文件复制到c:\temp3
目录中?
此外,我还可以完成重复的步骤,处理日志文件从两个不同的目录在一个步骤,而不是两个单独的步骤,为不同的目录。
我是批处理脚本的新手,当我添加copy
命令时,我的脚本不起作用。
发布于 2013-10-16 09:27:48
您的脚本坏了,我更正了我认为的明显错误,并添加了代码将文件复制到c:\temp3
中,并在文件名中添加了一个前缀--就好像两个文件夹中的文件名是相同的,然后它们会相互覆盖。
@echo off
md "c:\temp3" 2>nul
pushd "C:\temp1\"
for /f "delims=" %%F in ('dir /b "*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\."') do if "%%F" geq "20130101" if "%%F" lss "20130931" copy "%%F" "c:\temp3\temp1-%%F"
popd
pushd "C:\temp2\"
for /f "delims=" %%F in ('dir /b "*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\."') do if "%%F" geq "20130101" if "%%F" lss "20130931" copy "%%F" "c:\temp3\temp2-%%F"
popd
pause
https://stackoverflow.com/questions/19393097
复制相似问题