Batch file Cmd:比较两个文件日期

Batch file Cmd:比较两个文件日期,batch-file,Batch File,在cmd脚本中(这与批处理脚本相同吗?),我只想在file1比file2新时执行命令。两个文件都位于同一目录中 我发现,没有人做我所需要的,或者做得很迂回,或者不考虑本地化。 就像这样: if "%file1%" is_newer_than "%file2%" ( execute command ) 我不想找到更新的文件 我不想找到最新文件的日期 它必须独立于区域设置,因此不允许对格式化日期进行字符串操作!(该脚本将在全球范围内使用) 与xcopy等命令不同,该命令本身不支持日期 答案

在cmd脚本中(这与批处理脚本相同吗?),我只想在
file1
file2
新时执行命令。两个文件都位于同一目录中

<>我发现,没有人做我所需要的,或者做得很迂回,或者不考虑本地化。 就像这样:

if "%file1%" is_newer_than "%file2%" (
  execute command
)
  • 我不想找到更新的文件
  • 我不想找到最新文件的日期
  • 它必须独立于区域设置,因此不允许对格式化日期进行字符串操作!(该脚本将在全球范围内使用)
  • xcopy
    等命令不同,该命令本身不支持日期

答案看起来最有希望,但我不知道如何在
if
语句中使用该函数两次。

dir/b/a:-d/o:d/t:w%file1%%file2%
应该在写入时对文件进行排序
/o:-d
反向排序


for/f“令牌=*”%%?在('dir/b/a:-d/o:d/t:w%file1%%file2%%')中,是否执行echo%%~tf?
带有时间戳的示例显示dir/b/a:-d/o:d/t:w%file1%%file2%%应按写入时间对文件进行排序
/o:-d
反向排序


for/f“令牌=*”%%?在('dir/b/a:-d/o:d/t:w%file1%%file2%%')中,是否使用echo%%~tf?
示例显示时间戳

使用它两次(生成两个变量),然后执行
if
。第一个问题在使用它两次(生成两个变量)时被询问和回答,然后做你的
如果
。你的第一个问题是在一个简单的解决方案开始的时候被问到和回答的。但需要注意的是,这仅在两个文件位于同一文件夹中时有效,因为对每个文件夹进行单独排序。我知道OP明确指定了这个条件,但我不希望其他人错误地将此技术用于不同文件夹中的文件。一个限制是,它不会告诉您两个文件是否具有完全相同的时间戳。我运行了一些快速测试,如果使用
/o-d
而不是
/od
,则具有相同时间戳的文件似乎以相同的顺序出现。这一事实可用于确定两个文件何时具有相同的时间戳。您可以创建一个新文件夹,其中包含指向文件的软链接(或只是复制),然后开始一个简单的解决方案。但需要注意的是,这仅在两个文件位于同一文件夹中时有效,因为对每个文件夹进行单独排序。我知道OP明确指定了这个条件,但我不希望其他人错误地将此技术用于不同文件夹中的文件。一个限制是,它不会告诉您两个文件是否具有完全相同的时间戳。我运行了一些快速测试,如果使用
/o-d
而不是
/od
,则具有相同时间戳的文件似乎以相同的顺序出现。这一事实可用于确定两个文件何时具有相同的时间戳。您可以创建一个新文件夹,其中包含指向文件的软链接(或只是复制),然后执行上述操作