2013-02-27 3 views
1

Я прохожу $ nextday и $ currrentyear в .exe, который я выполняю в моем скрипте powershell. Кажется, что аргументы не проходят, почему?Power shell Pass аргумент

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

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

ответ

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 
0

Попробуйте

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

Билл