Использовать командный файл для запуска файла ps1, но скрыть командную строку после запуска?
Я создаю небольшой инструмент с PowerShell и открываю его через командный файл. Пакетный файл имеет следующий контент:
powershell -file "D:\scripts\Powershell\xxx.ps1"
Теперь он открывает мой инструмент, но всегда отображает командную строку в фоновом режиме. Я хочу, чтобы CMD был скрыт после запуска моего файла.
Как этого добиться? Я старался -hidden
но чем вся моя программа скрыта:D
Спасибо
1 ответ
Попробуйте использовать START
Утилита в вашем командном файле, она запустит программу в новом окне и позволит cmd
окно для выхода в фоновом режиме.
START powershell -file "D:\scripts\Powershell\xxx.ps1"
Знать START
демонстрирует [потенциально] неожиданное поведение, когда первый параметр содержит двойные кавычки.
Если вы используете элементы графического интерфейса или внешние приложения и хотите скрыть окно Powershell, но не графический интерфейс, попробуйте следующее:
START powershell -WindowStyle Hidden "D:\scripts\Powershell\xxx.ps1"
Вот пример того, как я использовал пакетную обработку в паре с графическим интерфейсом PowerShell:
Содержимое C:\call.cmd:
START "" powershell -NoLogo -WindowStyle Hidden "C:\gui.ps1"
Содержимое C:\gui.ps1:
# VB Assembly GUI example
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.Interaction]::MsgBox(
"Do you like VB in PowerShell?",
[Microsoft.VisualBasic.MsgBoxStyle]::YesNo,
"Hello"
)
# Windows Forms GUI example
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show(
"Do you like Windows Forms?",
"Hello",
[System.Windows.Forms.MessageBoxButtons]::YesNo
)
# External app GUI example
& notepad.exe
Запуск call.cmd
партия будет использовать START
запустить PowerShell [выход cmd
] и PowerShell скрывают свое окно, но в противном случае отображают элементы графического интерфейса, выполненные из файла PS1.