2013-08-26 5 views
1

У меня есть сценарий PowerShell, который в качестве последней инструкции вызывает программу на C#. Этот сценарий PowerShell запускается на сервере Windows в планировщике. Проблема в том, что окно консоли PowerShell, которое использует скрипт, не будет закрываться или уходить после выполнения сценария.Консоль PowerShell не будет закрыта после выполнения сценария

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

Мы попытались добавить exit и break, но окно все еще остается.

Есть ли какой-либо способ сценария PowerShell заставить окно консоли закрыть после выполнения сценария?

+0

Как вы ссылаетесь на сценарий? –

+0

Также, как вы называете программу C#, она ждет завершения приложения? –

+0

@DanielMann Я думаю, что powershell.exe вызывается, и строка для вызова скрипта выполняется в консоли. Впрочем, это только предположение. Нам удалось закрыть окно, используя номер $ PID и используя powershell, чтобы закрыть это число. –

ответ

1

Вы пробовали -NonInteractive режим при вызове мощности

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -WindowStyle Hidden -NonInteractive C: \ Scripts \ MyScript.ps1

+0

Нет, у меня нет, но я предложу. Мой босс использует $ PID для получения идентификатора консоли powershell и закрытия приложения powershell из $ PID. Это очень грубый способ сделать это, но он работает. –

+0

Это сработало так хорошо. Спасибо. Легко! – Joe

0

Запустив программу C# из PowerShell с помощью Start-Process, вы можете выполнить ее параллельно и не нужно, чтобы PowerShell ждал ее завершения. Вы можете использовать -WindowStyle Hidden, чтобы убедиться, что программа C# не создает новое окно при запуске.

Start-Process .\ProductiondataImportNew.exe -WindowStyle Hidden 
0

Положите это в нижней части файла .ps1:

Stop-Process -processname powershell 

Обнаружили это было связано с StartInfo.RedirectStandardInput быть установлен так, я думаю, если он ожидал большего ввода его не будет закрываться ... Правильно установите значение false, чтобы закрыть окно после выполнения.

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