2015-07-01 157 views
0

我有一个file.txtWindows,我想检查文件的修改日期是否等于if statement的某个日期。它会检查batch file获取文件的修改日期 - 条件Windows批处理

这是主意,让德日期:

for %a in (file.txt) do set FileDate=%~ta 

但我需要与条件,如果条件为真,这将执行SQLCMD命令。

回答

1

你能尝试:

set date_today=%date:~0,2%/%date:~3,2%/%date:~6,4% 

for %%x in ("your_file.txt") do set date_of_file=%%~tx 

IF %date_of_file:~0, 10% == %date_today% goto same 
goto notsame 

:same 
your sqlcmd command 

:notsame 
another thing 

当然,你会修改%date_today%到你想要的日期。

+1

谢谢,这就是主意! %%〜tx的含义是什么? – user1911

+1

如何在If语句中添加更多条件? – user1911

+1

'%%〜t'表示变量的日期/时间,在这里是'x'。所以你有'%%〜tx',但如果你改变'for %% x',你可以有其他任何东西。 %%在批处理脚本中使用;对于cmd.exe中的简单命令,您只能使用一个%:PS:在这里查看我所说的精确度,您将更好地理解for命令的用法:http://ss64.com/nt /syntax-args.html – AymericB

0

你期望做的事对我来说不是很清楚。

你的file.sql包含一个查询,它只是返回一个日期的行吗?

所以我认为你应该执行file.sql(用一些sqlcmd),然后得到查询的输出,最后在你的批处理文件中用IF语句进行比较。我当然可以帮助你,但我不确定你想要什么。

+1

对不起。不,file.sql就是一个例子。可能是file.txt或file.x.这是无动于衷 – user1911

+0

好的,那么这个文件可以包含多个日期吗?此外,如果您希望您的批次了解您的日期,我认为日期应该采用标准化形式(MM/JJ/AAAA) – AymericB

+0

对不起,我误解了我相信的一些内容。您的文件是否包含日期或您想要该文件的日期? – AymericB

相关问题