2015-12-27 2 views
-2

Я пытаюсь выполнить свою должную осмотрительность при поиске до публикации, но у меня возникают проблемы с пространством в пути к файлу при запуске скрипта powershell в .. C# приложение, которое я пытался избежать кавычки, используя @ почти везде, одинарные кавычки Что я здесь отсутствуетПробелы в пути к файлу, не работающие с @ или "(C#)

Это как я определяю путь:

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(); 
} 
+2

В чем вопрос? BTW, вы подходите к '@ '&' C: \ Program Files \ Automation Toolbox \ Scripts \ Music_Import.ps1 '" 'не удастся, если файл или папка имеют два или более смежных пространства в имени. – PetSerAl

ответ

0

Try со ссылкой на ваше значение пути в двойные кавычки, как

string importMusicLocation = @"""C:\Program Files\Automation Toolbox\Scripts\Music_Import.ps1"""; 

Итак, PowerShell.exe утилита получит аргумент в качестве цитируемой строки и вопрос о пробеле не должен возникать

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

Это действительный код, однако он фактически не выполняет сценарий в powershell. Вывод: 'PS C: \ WINDOWS \ system32>" C: \ Program Files \ Automation Toolbox \ Scripts \ Music_Import.ps1 " C: \ Program Files \ Automation Toolbox \ Scripts \ Music_Import.ps1' – nkasco

+0

@nkasco prepend' & ' –

Смежные вопросы