Как запустить скрипт PowerShell в C# из относительного пути?



Я пытаюсь запустить сценарий PowerShell из моего приложения C#. Я знаю, как сделать это с абсолютным путем:



    using (PowerShell pshell = PowerShell.Create())
{
pshell.AddScript( @"C:PathToWebapppsScript.ps1" );
pshell.Invoke();
}


Чего я не знаю, так это как использовать относительный путь. Мой psScript.ps1 находится в том же каталоге, что и мой проект Visual Studio, и я хотел бы использовать относительный путь (например, ./psScript.ps1), чтобы при публикации/экспорте моего проекта на другие компьютеры путь к скрипту не становился недействительным

Оооо, как я использую относительный путь в PowerShell.Метод AddScript ()? Любая помощь будет оценена по достоинству!



Я посмотрел здесь, но это не ответ на мой вопрос:
PowerShell: запуск команды из каталога скрипта

587   2  

2 ответов:

Используйте это:

using (PowerShell pshell = PowerShell.Create())
    {
        string path=System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        pshell.AddScript( path+"\\psScript.ps1" );
        pshell.Invoke();
    }

Этот путь всегда находится относительно корневой папки вашего проекта.

Добавьте свой скрипт в проект и задайте свойство Copy to output directory в Copy always или Copy id newer

Comments

    Ничего не найдено.