批处理脚本 - 将修改日期和文件名输入到输出文件中

时间:2015-10-15 18:10:49

标签: windows batch-file

我试图将修改日期和文件名信息添加到我的批处理脚本创建的输出文件中。

我有一个文件(info.txt),它在不同的行上包含多个字符串。对于info.txt中的每个字符串,我的批处理文件遍历查找所述字符串的目录中的每个文本文件,并将该行输出到名为results.txt的单独文件中。请参阅下面的代码。

for /F %%i in (info.txt) do (
echo Searching files containing string: %%i
findstr /C:%%i /I \\directory*.txt >> results.txt )

对于results.txt中的每一行,我想添加找到该字符串的每个文件的文件名和修改日期。现在,results.txt看起来像这样:

// directory / file1.txt:数据行" string"被发现

但我希望它看起来更像这样:

修改了file1.txt的日期| file1.txt |发现字符串的数据行

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

findstr的输出在内部for循环中处理 - 输出中的每个字符串分为两部分(文件名%%B,余数%%C)。 %%~tB是文件日期和时间,%%~nxB是文件名和扩展名。

for /f %%A in (info.txt) do (
    echo Searching files containing string: %%A
    for /f "delims=: tokens=1*" %%B in ('findstr /C:%%A /I directory*.txt') do (
        echo %%~tB ^| %%~nxB ^| %%C >> results.txt
    )
)