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 に答える