1

我想从 powershell 调用一个 C# 程序,并将一组参数从 powershell 传递给 C# 程序。C# 程序采用文件路径、日期和文件扩展名并操作这些文件。

在我拥有的 powershell 脚本中,我将所有字符串存储在一个字符串数组中,并使用 in 中的-argumentlist开关传递该字符串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 回答