Powershell Pass论点

时间:2013-02-27 20:46:41

标签: powershell

我正在将$ next和$ currrentyear传递给我在我的powershell脚本中执行的.exe。似乎论证没有通过,为什么?

$nextday = (Get-Date).AddDays(-1).ToString("M/dd/yyyy")
$currentgetyear = (Get-Date).ToString("yyyy")

& "C:\tmt.exe" YEAR=  $currentgetyear DATE=  $nextday

2 个答案:

答案 0 :(得分:4)

为什么在单词之间使用空格?看看它是如何被软件解析的:

[21:50:46] > & echoargs YEAR=  $currentgetyear DATE=  $nextday
Arg 0 is <YEAR=>
Arg 1 is <2013>
Arg 2 is <DATE=>
Arg 3 is <2.26.2013>

然而,这解析了我猜它应该如何。

[21:50:58] > & echoargs YEAR=$currentgetyear DATE=$nextday
Arg 0 is <YEAR=2013>
Arg 1 is <DATE=2.26.2013>

所以我的解决方案:删除空格,如下所示:

& "C:\tmt.exe" YEAR=$currentgetyear DATE=$nextday

答案 1 :(得分:0)

尝试

& "C:\tmt.exe" ("YEAR={0}" -f (get-date).Year) ("DATE={0:M/dd/yyyy}" -f (get-date).AddDays(-1))

比尔