1

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 スクリプトを作成するにはどうすればよいですか?

私が試してみました

  1. 二重引用符を一重引用符に置き換える
  2. 各パラメーターを二重引用符で囲み、ファイル パスを一重引用符で囲みます。

これは、次のように呼び出すと機能します。

start-process .\ABetterProductionImport.exe "C:\my images,20130412,dat"

編集:しかし、私が書いたスクリプトから同じコマンドを呼び出すと、これは機能しません。繰り返しになりますが、これを正しく実行するには、powershell スクリプトをどのように作成すればよいでしょうか。

4

1 に答える 1

2

答えを見つけました。私が電話したら

.\ABetterProductionImport.exe $ParametersToPass 

開始プロセスやそれが機能するものは何もありません。どっちがいい。

于 2013-04-15T19:05:28.660 に答える