powershell から C# プログラムを呼び出し、powershell から C# プログラムにパラメーターの配列を渡したいと思います。C# プログラムは、ファイル パス、日付、およびファイル拡張子を受け取り、それらのファイルを操作します。
-argumentlist
私が持っている powershell スクリプトでは、すべての文字列を文字列の配列に格納し、スイッチ inを使用してその文字列を渡しますstart-process
。
これらのファイル パスは私の仕事なので、例としていくつかのファイル パスを作成します。このスクリプトの名前はProductionImportCaller
$ParametersToPass = "C:\my images,20130412,dat", "C:\my images\curiosity,20130412,bif"
Start-Process -FilePath C:\Users\ABetterProductionImport.exe
-ArgumentList $ParametersToPass
上記のスクリプトには改行がありません。読みやすいように、ここでは改行にするだけです。
.\ProductionImportCaller
渡される配列 を呼び出すと、次のようになります。
c:\my
images,20130412,dat
c:\my
images\curiosity,20130412,bif
私はしたくない。
ここに私の質問があります: これらのパラメーターが正しく渡されるように、powershell スクリプトを作成するにはどうすればよいですか?
私が試してみました
- 二重引用符を一重引用符に置き換える
- 各パラメーターを二重引用符で囲み、ファイル パスを一重引用符で囲みます。
これは、次のように呼び出すと機能します。
start-process .\ABetterProductionImport.exe "C:\my images,20130412,dat"
編集:しかし、私が書いたスクリプトから同じコマンドを呼び出すと、これは機能しません。繰り返しになりますが、これを正しく実行するには、powershell スクリプトをどのように作成すればよいでしょうか。