繁体   English   中英

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

[英]Passing a string array from powershell to C#

我想从powershell调用C#程序,并将参数数组从powershell传递到C#程序。 C#程序采用文件路径,日期和文件扩展名并处理这些文件。

在我拥有的powershell脚本中,我将所有字符串存储在字符串数组中,并在start-process使用-argumentlist开关传递该字符串。

由于这些文件路径在我的工作中,因此我将为示例组成一些文件路径。 该脚本的名称是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脚本以使其正确运行?

找到了答案。 如果我打电话

.\ABetterProductionImport.exe $ParametersToPass 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM