【问题标题】:how to use diff command line to compare the newest file (last modified)如何使用 diff 命令行比较最新文件(最后修改)
【发布时间】:2014-02-03 13:40:42
【问题描述】:

我在 windows 中编写了一个 bat 文件,它比较了 2 个文件并列出了所有差异(代码如下)。目前它只将名称为 1.txt 的文件与 2.txt 进行比较,并将差异输出到 786.txt。

我希望它比较最新的文件(最后修改)和 2.txt 并将结果输出到 786.txt。

请有人帮忙。到目前为止的代码如下:

for /f "tokens=1*" %%a in (
  'diff c:\1.txt c:\2.txt ^| findstr /r /c:"^<" /c:"^>"'
) do @echo %%b >>c:\786.txt

【问题讨论】:

    标签: batch-file command compare diff


    【解决方案1】:

    获取最新文件的方法如下:

     cd /d c:\
     for /f %%a in ('dir /b /o-d /a-d /tw') do (set latest=%%a & goto :eof)
    

    那么您只需使用 %latest% 代替 1.txt

    【讨论】:

    • 嗨,谢谢。我在这方面完全是新手。能否请您告诉我如何将两组代码放在一起以便执行 bat 文件。
    • 首先是此答案中的代码,然后是您的代码(使用 %latest% 代替 1.txt
    • 我已将代码添加到 bat 文件中,但运行时没有任何反应。代码如下所示: cd /d c:\ for /f %%a in ('dir /b /o-d /a-d /tw') do (set latest=%%a & goto :eof) for /f "tokens= 1*" %%a in ('diff c:\%latest% c:\2.txt ^| findstr /r /c:"^"' ) 做@echo %%b > >c:\786.txt
    • 一切正常。当你说什么都没有发生时,你的意思是 786.txt 文件没有创建吗?回显 %latest% 并查看它是什么。确保它是您期望的文件。
    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多