используя пакетный файл для запуска файла ps1, но скрывая командную строку после запуска?

StackOverflow https://stackoverflow.com//questions/20050772

Вопрос

Я создаю небольшой инструмент с помощью powershell и открываю его через пакетный файл.Пакетный файл имеет следующее содержимое :

powershell -file "D:\scripts\Powershell\xxx.ps1"

Теперь он открывает мой инструмент, но всегда отображает командную строку в фоновом режиме.Я хочу, чтобы CMD был скрыт после запуска моего файла.

Как этого добиться?Я пытался -hidden но тогда моя программа скрыта:D

Спасибо

Это было полезно?

Решение

Попробуйте использовать START утилита в вашем пакетном файле, она запустит программу в новом окне и разрешит пакетное cmd окно для выхода в фоновом режиме.

START powershell -file "D:\scripts\Powershell\xxx.ps1"

Знать START проявляет [потенциально] неожиданное поведение, когда первый параметр содержит двойные кавычки.

Если вы используете элементы графического интерфейса или внешние приложения и хотите скрыть окно Powershell, но не графический интерфейс, попробуйте следующее:

START powershell -WindowStyle Hidden "D:\scripts\Powershell\xxx.ps1"

Вот пример того, как я использовал batch в сочетании с графическим интерфейсом 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top