我在发布之前尝试过尽职调查,但在C#应用中启动powershell脚本时遇到文件路径中的空格问题。我尝试使用@几乎任何地方,单引号转义引号。我在这里错过了什么?
这就是我定义路径的方式:
public string importMusicLocation = @"C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1";
然后我启动了一个PowerShell进程并指向路径,之前我指向我桌面上的路径时没有空格,但现在我想将应用程序放在Program Files中,powershell窗口只检测通往太空的道路。
private void LaunchPshell(string script) {
string strCmdText = Path.Combine(Directory.GetCurrentDirectory(), script);
var process = System.Diagnostics.Process.Start(@"C:\windows\system32\windowspowershell\v1.0\powershell.exe", strCmdText);
process.WaitForExit();
}
就像我发布这个帖子后的5分钟,我意识到我不需要组合目录,我打算删除这个,但我可以发布解决方案,以防其他人需要它。 PowerShell启动脚本的一般语法是& 'C:\Program Files\Some Path'
:
public string importMusicLocation = @"& 'C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1'";
和
private void LaunchPshell(string script) {
var process = System.Diagnostics.Process.Start(@"C:\windows\system32\windowspowershell\v1.0\powershell.exe", script);
process.WaitForExit();
}
答案 0 :(得分:0)
尝试使用双引号(如
)引用路径值string importMusicLocation = @"""C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1""";
因此,PowerShell.exe
实用程序会将参数作为带引号的字符串接收,并且不应出现间距问题
"C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1"