在我的msbuild脚本中,我在zip文件名中创建了一个年/月/日的zip文件,但是月和日总是写成没有前导零。
有没有办法在我的zip文件名中添加前导零?
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
<Output TaskParameter="Month" PropertyName="Month" />
<Output TaskParameter="Day" PropertyName="Day" />
</Time>
<PropertyGroup>
<ZipOutDir>C:\output</ZipOutDir>
<ZipFileName>Application_$(Year)$(Month)$(Day).zip</ZipFileName>
</PropertyGroup>
结果是:'Application_2010122.zip'(1月没有前导零,你可以看到)
答案 0 :(得分:26)
$([Namespace.Type]::Method(..parameters…))
$([Namespace.Type]::Property)
$([Namespace.Type]::set_Property(value))
所以我正在使用
$([System.DateTime]::Now.ToString(`yyyy.MMdd`))
格式周围的标记是反引号而不是'
答案 1 :(得分:4)
您可以使用MSBuild扩展包la:
http://www.msbuildextensionpack.com/help/3.5.3.0/html/9c5401ed-6f55-089e-3918-2476c186ca66.htm
或者将格式参数用于社区任务[您似乎正在使用]
中的时间任务答案 2 :(得分:0)
这是因为MSBuild只使用字符串。您必须修改现有任务,以便所有属性都返回string
而不是int
s(或返回它们的任何整数值),或者创建一个单独的任务,它将格式化年,月和一天根据您的需要。
答案 3 :(得分:-1)
这是一种廉价而肮脏的方式来添加前导零
$([System.UInt16]::Parse($(Month)).ToString('00'))