Окно PowerShell при запуске из пакетного файла

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

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

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

MyScript.ps1:

Write-Output "Hello World!"

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

Спасибо.

Спасибо всем, кто написал до сих пор. Мне все равно, синий фон или черный. Я хочу знать, почему это происходит в первую очередь. Если я сделаю это: ЗАПУСТИТЬ блокнот, тогда Блокнот запустится нормально, и вокруг не останется следов cmd.exe. Блокнот выглядит точно так же, как если бы я запускал его с ярлыка. Почему с PowerShell все по-другому? Почему это отличается, если я запускаю его из пакетного файла или с ярлыка? И мне нравится, что в новом PowerShell можно вставлять правой кнопкой мыши. Спасибо.   —  person mcu    schedule 18.02.2012

Кроме того, по умолчанию командная строка сохраняет только 300 строк, тогда как PowerShell сохраняет НАМНОГО больше строк, поэтому, если вы используете что-то вроде start powershell -noexit -executionpolicy unrestricted -file "PowerShell script.ps1", вам нужно, чтобы он фактически открывался в PowerShell, а не в командной строке, чтобы вы могли увидеть полную историю сценария. .   —  person mcu    schedule 25.05.2016

См. также:  Как загрузить файл .xlsx с помощью FTPWebRequest через C # ASP.NET
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. mcu

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

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

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

    Пробовал на XP, не работает. У меня черная оболочка. start "" "C:\Documents and Settings\All Users\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk". Мне пришлось использовать explorer.exe для соблюдения свойств LNK. person mcu; 16.02.2012

    Ну, я на Windows 7, и здесь это сработало. Но это то, что я пытался вам сказать — это грязное дело и может сломаться (особенно в устаревших ОС). person mcu; 17.02.2012

  2. mcu

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

    #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. mcu

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

    Powershell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy RemoteSigned -noexit -File ""Full_Path_of_MyScript.ps1""'}"
    
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: