我想要执行的命令如下:
c:\Program Files (x86)\SEQUEL ViewPoint\viewpoint.exe /Setvar((POSTSTR $POSTSTR)(POSTEND $POSTEND)) /G:C:\viewpointfile.vpt /D:C:($BEGDATE to $TODDATE).xls
我尝试过的命令如下:
$a = "/Setvar((POSTSTR $POSTSTR)(POSTEND $POSTEND))"
$b = "/G:C:\viewpointfile.vpt"
$c = "/D:C:($BEGDATE to $TODDATE).xls"
$Viewpoint = "c:\Program Files (x86)\SEQUEL ViewPoint\viewpoint.exe"
&$Viewpoint $a $b $c
当我执行这个命令时,会出现以下错误:
文件 C:\viewpointfile.vpt "/D:C:($BEGDATE to $TODDATE).xls" 未找到!
我不确定是哪里多了引号。如果我只运行$a和$b的命令,它会正常运行。
非常感谢您的帮助! :)
更新
manojlds建议使用echoargs,以下是它的输出:
&./echoargs.exe $viewpoint $a $b $c
参数0是C:\Program Files (x86)\SEQUEL ViewPoint\viewpoint.exe
参数1是/Setvar((POSTSTR 20101123)(POSTEND 20111123))
参数2是/G:C:\viewpointfile.vpt
参数3是/D:C:(2010-11-23 to 2011-11-23 PM).xls
看起来所有的参数都被正确地传递了。当我在cmd.exe中运行这个命令时,它可以完美地执行。所以PowerShell的某些地方一定出错了。
有没有其他方法可以使用PowerShell来执行此命令?