【问题标题】:How do I get the current date time on a Post-build action in a Delphi build如何在 Delphi 构建中获取构建后操作的当前日期时间
【发布时间】:2013-10-01 04:12:51
【问题描述】:

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

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

但是 Cmd 样式的 %date% 变量不起作用。我还尝试了以下方法:

  • MSBuild 风格的 $(date)
  • MSBuild 4 样式 $([System.DateTime]::Now.ToString(yyyy.MMdd))
  • 调用cmd:

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

但是这些选项都不起作用。我知道有一些社区任务可以实现这种功能,但我试图避免将它们安装在每个开发人员的 PC 中。

【问题讨论】:

标签: delphi msbuild delphi-2010


【解决方案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 的回答显示了如何检索它:

【讨论】:

  • 如果时间和日期在同一行会更好,但我可以使用它
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多