0
我正在做一個沒有足夠時間重寫HTA中寫入內容的項目。 我需要使用cmd.exe/C調用HTA(因此它在制定後關閉窗口,生成閃爍的hta框)。我可以用invoke-expression的方式做到這一點,但我試圖把它作爲一個混合變量的開始工作。Powershell在後臺打開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
我已經做了一些測試,並且變量正確地通過了。使用返回來查看完整變量。
似乎很簡單,可能應該沒有麻煩的工作。
任何想法?
解決方案: $ RunHTA = { PARAM( [字符串] $ FP,###文件路徑到HTA [字符串] $輸出)# ##輸出 Invoke-Expression -command「cmd.exe/C $ FP/H:''''''$ $ output'」'「'」「###這一行獨立工作。/H是保存報告功能和雙引號是需要的hta } [http://stackoverflow.com/questions/6714165/powershell-stripping-double-quotes-from-command-line-arguments] [1] [1]:http://stackoverflow.com/questions/6714165/powershell-stripping-double-quotes-from-command-line-arguments – user1981178