将字符串数组从powershell传递到C#

时间:2013-04-15 18:51:57

标签: c# powershell

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

在PowerShell脚本中,我将所有字符串存储在字符串数组中,并使用-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. 使用双引号括起每个参数,并用单引号
  3. 包围文件路径

    如果我打电话,这是有效的:

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

    编辑:但是如果我从我写的脚本中调用相同的命令,则这不起作用。 那么,我如何编写一个PowerShell脚本来使其正常运行?

1 个答案:

答案 0 :(得分:2)

找到答案。如果我打电话

.\ABetterProductionImport.exe $ParametersToPass 

完全没有启动过程或任何有效的东西。哪个好。