c# - 变量、字符串和越来越多的挫败感

标签 c# powershell

我是 C# 的新手,正在努力尝试完成本应是一项简单任务的工作,简而言之,我编写了一个 PowerShell 脚本来在 vSphere 环境中创建 VApp,PoSh 脚本完美运行,接下来我创建了(我的第一次)一个 Windows 控制台应用程序来运行(最初)这个带有用户输入的脚本,这是问题所在,在我的控制台应用程序中我正在使用 Process.Start 调用我的 PoSh 脚本并传递参数,但是,它们联合起来并完全缺少最后一个参数,这是有问题的行:

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

AppName 被完全忽略,Location 往往以 -Locationanywhere 而不是 -Location Anywhere 的形式出现,我确信这是基本的东西,我已经搜索了通常的组和 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);

关于c# - 变量、字符串和越来越多的挫败感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293268/

相关文章:

c# - DocumentDB 属性绑定(bind)如何响应节流?

PowerShell 将参数传递给具有开关的可执行文件

iis - 当参数有空格时,如何从powershell调用msdeploy?

powershell - 如果powershell脚本文件按文件内容删除,如何排除自删除

c# - 使用 FetchXML 获取(强类型)相关实体

c# - 字符串中数字的正则表达式

c# - 如何在 C# 中创建动态大小的数组或重新调整数组的大小?

c# - INotifyPropertyChanged 的​​ PropertyChanged 事件处理程序背后是什么?消息接收/处理机制是什么?

powershell - 如何从 vNext 构建代理上的自定义脚本加载 PowerShell 模块?

powershell - 运行在虚拟机上执行 PowerShell 命令的 Azure Runbook 时出错