0

我正在做一个没有足够时间重写用 HTA 编写的项目的项目。我需要使用 cmd.exe /C 调用 HTA(因此它在制定后关闭窗口,生成一个闪烁的 hta 框)。我能够以调用表达式的方式执行此操作,但我试图将其作为混合变量的开始工作。

$RunHTA = { 
param(
[string]$FP,  ### filepath to hta
[string]$output)  ### output
Invoke-Expression -command 'cmd.exe /C $FP /H:`"$output`"'  ### this line works alone. the /H is the save report feature and the double quotes are needed by the hta
}

$fp="C:\Path\To\HTA\file.hta"
$output = "C:\Output\path"
$j = Start-job $RunHTA -ArgumentList $FP,$output
$j | Receive-job

The filename, directory name, or volume label syntax is incorrect.
+ CategoryInfo          : NotSpecified: (The filename, d...x is incorrect.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

我已经进行了一些测试,并且变量正在正确传递。使用返回查看完整的变量。

看起来很简单,可能应该可以轻松工作。

有任何想法吗?

4

1 回答 1

0

尝试将命令用双引号括起来

Invoke-Expression -command "cmd /c $FP /H:`"$output`""
于 2013-01-15T18:02:00.383 回答