变量、字符串和不断增加的挫败感

本文关键字:不断增加 字符串 变量 | 更新日期: 2023-09-27 18:24:35

我对C#还很陌生,我有一个很难完成的任务,简而言之,我已经写了一个PowerShell脚本来在vSphere环境中创建VApps,PoSh脚本工作得很好,接下来我创建了(我的第一次)一个Windows控制台应用程序来运行(最初)这个带有用户输入的脚本,问题是,在我的控制台应用程序中,我正在使用Process。开始调用我的PoSh脚本并传递参数,但是,它们联合起来,完全缺少最后一个参数,这是有问题的行:

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

AppName被完全忽略了,Location往往显示为-Locationanywhere,而不是-Locationanywhere,我相信这是基本的,我搜索了常用的群组和RTFM,但没有乐趣!

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

感谢您的帮助。

变量、字符串和不断增加的挫败感

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

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

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

我不确定,但我认为-AppNameappname 之间需要一个空间

" -AppName " + appname

这是我能帮你的全部:(

我可以建议使用String.Format()而不是使用+运算符吗?

String.Format("-ExecutionPolicy bypass F:''hello.ps1 -Location {0} -AppName {1}", location, appname)