Окно PowerShell при запуске из командного файла - PullRequest
6 голосов
/ 16 февраля 2012

У меня есть командный файл, который запускает скрипт PowerShell.

Пакетный файл:

START Powershell -executionpolicy RemoteSigned -noexit -file "MyScript.ps1"

MyScript.ps1:

Write-Output "Hello World!"

Работает нормально, за одним исключением. Внешний вид окна похож на старый cmd.exe (черный фон), а не на PowerShell (синий фон).
Как я могу получить настоящее окно PowerShell, если я запускаю его из командного файла?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 17 февраля 2012

Если вы действительно хотите синий фон, добавьте в свой скрипт код для изменения цвета фона.

#save the original
$original=$host.ui.RawUI.BackgroundColor
$front=$host.ui.RawUI.ForegroundColor
$host.ui.RawUI.BackgroundColor="DarkBlue"
$host.ui.RawUI.ForegroundColor="White"
cls
#run your code
dir c:\scripts

#set it back
$host.ui.RawUI.BackgroundColor=$original
$host.ui.RawUI.ForegroundColor=$front
3 голосов
/ 16 февраля 2012

Это свойство ссылки оболочки в меню «Пуск», которая запускает PowerShell, так что вам придется пройти через это:

start "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" ...

Это не красиво, немного зависит от того, где оно находитсяи может сломаться на иностранных языках).

1 голос
/ 21 ноября 2016

Вы можете вызвать powershell, чтобы он запускался сам с помощью скрипта

Powershell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy RemoteSigned -noexit -File ""Full_Path_of_MyScript.ps1""'}"
...