复制一个文件的内容并根据日期粘贴到另一个文本文件中

时间:2018-05-17 08:30:12

标签: batch-file findstr

我有一个名为C:\ Submitlogs \ SubmitLog.txt

的文件
Log file content:
--------------
User01,15/05/2018,10:26,Submit,CATERGORY1,WEEK46
User01,17/05/2018,10:29,Submit,CATERGORY1,WEEK46
User04,17/05/2018,11:04,Submit,CATERGORY1,WEEK46
User11,17/05/2018,11:09,Submit,CATERGORY1,WEEK46

因此,如果系统日期是17/05/2018,那么批处理脚本应仅复制上面的17/05/2018中的内容(如下所述)并将其粘贴到C:\ Submitlogs \ Copy中。 TXT

User01,17/05/2018,10:29,Submit,CATERGORY1,WEEK46
User04,17/05/2018,11:04,Submit,CATERGORY1,WEEK46
User11,17/05/2018,11:09,Submit,CATERGORY1,WEEK46

我已设法写下面的脚本,但我得到的输出如下。

@echo off
setlocal enableextensions

set sysdt=%date:~-7,2%/%date:~-10,2%/%date:~-4,4%
echo %sysdt%
set "source=C:\Submitlogs"
set "target=C:\Submitlogs\Copy.txt"
pushd "%source%" 
(for /f "tokens=1,* delims=," %%a in ('findstr /i /C:%sysdt% "SubmitLog.txt"') do ( 
echo(%%b )) > "%target%" 
popd

搜索字符串后面的值。请告诉我如何将整行作为输出。

当前输出:

17/05/2018,10:29,Submit,CATERGORY1,WEEK46
17/05/2018,11:04,Submit,CATERGORY1,WEEK46
17/05/2018,11:09,Submit,CATERGORY1,WEEK46

预期产出:

User01,17/05/2018,10:29,Submit,CATERGORY1,WEEK46
User04,17/05/2018,11:04,Submit,CATERGORY1,WEEK46
User11,17/05/2018,11:09,Submit,CATERGORY1,WEEK46

1 个答案:

答案 0 :(得分:1)

我建议您使用一种确定日期的方法,无论用户设置或区域设置如何,都会产生一致的结果。

此方法使用RoboCopy命令:

@Echo Off
Set "parent=C:\Submitlogs"
Set "source=SubmitLog.txt"
Set "target=Copy.txt"

If Not Exist "%parent%\%source%" Exit /B
For /F "Tokens=1-3 Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null'
) Do Set "moment=%%C/%%B/%%A" & GoTo :Break
:Break
Find "%moment%"<"%parent%\%source%">"%parent%\%target%"
相关问题