变量,字符串和越来越多的挫败感

I_N*_*3RD 3 c# powershell

我对C#很陌生,我正在努力寻找一个简单的任务来完成工作,简而言之,我编写了一个PowerShell脚本来在vSphere环境中创建VApp,PoSh脚本运行正常,接下来我已创建(我的第一个)Windows控制台应用程序运行(最初)此脚本与用户输入,这是问题,在我的控制台应用程序中我正在使用Process.Start调用我的PoSh脚本并传递参数,但是,他们来了out加入并完全错过了最后一个参数,这里是有问题的一行:

Process.Start("Powershell.exe","-ExecutionPolicy bypass F:\\hello.ps1 -Location " + location + " -AppName" + appname);

AppName完全被忽略了,而且位置往往是-Locationanywhere而不是-Location Anywhere,我确信它是基本的东西,我已经拖曳了通常的组和RTFM,但没有快乐!

Hello.ps1是一个测试脚本,只记录传递给它的参数,这样我就可以在触摸我的真实脚本之前检查输出.

任何帮助感激不尽.

Ric*_*lly 6

-AppName和双引号之间缺少空格.

string.Format 是.Net中一个有用的方法 - 它允许您以一种直观地查看"完整"字符串的方式轻松替换占位符和动态内容:

string parameters = string.Format("-ExecutionPolicy bypass F:\\hello.ps1 -Location {0} -AppName {1}", location, appName);
Process.Start("Powershell.exe", parameters);
Run Code Online (Sandbox Code Playgroud)