如何在Delphi构建中获取构建后操作的当前日期时间

时间:2013-09-25 14:03:02

标签: delphi msbuild delphi-2010

我每次编译/构建项目时都试图将项目的编译时间保存在文本文件中,所以我尝试将以下命令放在项目的选项中Post-Build Action:

echo %date% %time% > "$(PROJECTDIR)\$(PROJECTNAME).txt"

但是Cmd风格的%date%变量不起作用。我也尝试了以下内容:

  • MSBuild-style $(date)
  • MSBuild 4-style $([System.DateTime] :: Now.ToString(yyyy.MMdd))
  • 调用cmd:

    cmd.exe /C echo %date% %time% > "$(PROJECTDIR)\$(PROJECTNAME).txt"
    

但这些选项都不起作用。我知道社区任务可以实现这类功能,但我正在努力避免在每个开发人员的PC中安装它们。

2 个答案:

答案 0 :(得分:1)

使用datetime命令输出时间和日期。通过/t开关告诉这些命令只输出当前值。

C:\>date /t
25/09/2013

C:\>time /t
15:06

因此,要将这些值放入文件中,请执行以下操作:

date /t > "$(PROJECTDIR)\$(PROJECTNAME).txt"
time /t >> "$(PROJECTDIR)\$(PROJECTNAME).txt"

将这些信息写入文件可能不是解决问题的最佳方法。编译器会将构建日期写入输出文件。 TOndrej对this question的回答显示了如何检索它:

答案 1 :(得分:1)

您可以从刚构建的项目中提取日期/时间,并将其发送到文本文件,日期和时间在一行上。将其添加到post-build命令:

for /f "tokens=1,2,3 delims= " %%i in ('dir "$(OUTPUTDIR)$(OUTPUTFILENAME)" ^| find "$(OUTPUTFILENAME)"') do echo %%i %%j %%k > "$(PROJECTDIR)$(PROJECTNAME).txt"