0

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

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

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

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

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

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

4

2 回答 2

1

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

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

C:\>time /t
15:06

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

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

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

于 2013-09-25T14:07:09.863 回答
1

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

for /f "tokens=1,2,3 delims= " %%i in ('dir "$(OUTPUTDIR)$(OUTPUTFILENAME)" ^| find "$(OUTPUTFILENAME)"') do echo %%i %%j %%k > "$(PROJECTDIR)$(PROJECTNAME).txt"
于 2013-09-26T04:02:55.437 回答