0
これをStart-Processで実行しようとしていますが、そのまま実行されているようです。事前に多くの感謝。スタート・プロセスを使用しmssacliでpowershellでリダイレクタ出力を使用する方法
cmd /C ("$([char]34)" + "C:\Program Files\MBSA\bin\mbsacli.exe" + "$([char]34)" + " /xmlout /wi /nvc /nd /catalog " + "$([char]34)" + "C:\Program Files\MBSA\db\wsusscn2.cab" + "$([char]34)" + " /unicode > " + "$([char]34)" + "C:\Program Files\MBSA\result.xml" + "$([char]34)")
作品ない: - - は:
Start-Process -FilePath "C:\Program Files\MBSA\bin\mbsacli.exe" -ArgumentList (" /xmlout /wi /nvc /nd /catalog " + $([char]34) + "C:\Program Files\MBSA\db\wsusscn2.cab" + $([char]34) + " /unicode > " + $([char]34) + "C:\Program Files\MBSA\result.xml" + "$([char]34)") -Wait -PassThru
'>'はコマンドプロンプトのシェル命令ですが、mbsacli.exeの引数ではありません。コマンドプロンプトを使用していない場合は、結果をPowerShellで取得し、出力ファイルに保存するためにそれらを 'Set-Content'などにパイプする必要があります。文字列に二重引用符を付けるには、1)エスケープして別の二重引用符 "" "" xyz "" "'でエスケープします。2)エスケープ文字をPowerShellエスケープ文字でエスケープします。エスケープ文字はバッククイック '' \ '" xyz \ "'、3)文字列 "'" xyz "''を一重引用符で囲みます。なぜStart-Processを使用しているのですか?mbsacliはわかりませんが、Robocopyと/ parametersをPowerShellから直接実行します。 – TessellatingHeckler
次のコマンドに進む前に、完了するためのコマンドが必要です。したがって、開始プロセスを使用して-waitパラメータが必要です。 PowerShellを初めて使うときに他のコマンドを使用できるかどうかはわかりません。 –