文件路径中的空格无法使用@或\“(C#)

时间:2015-12-27 20:58:06

标签: c# powershell path filepath

我在发布之前尝试过尽职调查,但在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();
}

1 个答案:

答案 0 :(得分:0)

尝试使用双引号(如

)引用路径值
string importMusicLocation = @"""C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1""";

因此,PowerShell.exe实用程序会将参数作为带引号的字符串接收,并且不应出现间距问题

"C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1"