2012-02-16 18 views
6

Mam plik wsadowy, który uruchamia skrypt PowerShell.Okno PowerShell po uruchomieniu z pliku wsadowego

Plik wsadowy:

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

MyScript.ps1:

Write-Output "Hello World!" 

To działa dobrze, z jednym wyjątkiem. Wygląd okna przypomina stare cmd.exe (czarne tło), a nie PowerShell (niebieskie tło).
Jak mogę uzyskać prawdziwe okno PowerShell, jeśli uruchamiam je z pliku wsadowego?

Dzięki.

+2

Dzięki wszystkim, którzy napisali do tej pory. Nie obchodzi mnie, czy tło jest niebieskie czy czarne. Chcę wiedzieć, dlaczego tak się dzieje. Jeśli to zrobię: START Notatnik to Notatnik uruchamia się normalnie i nie ma śladu cmd.exe. Notatnik wygląda dokładnie tak samo, jak gdybym zaczął go od skrótu. Dlaczego jest inaczej z PowerShell? Dlaczego jest inaczej, gdy uruchamiam go z pliku wsadowego kontra skrótu? I lubię być w stanie wkleić z prawym przyciskiem myszy w nowym PowerShell. Dzięki. – mcu

+0

Domyślnie, wiersz poleceń zachowuje tylko 300 linii, podczas gdy PowerShell zachowuje WIELE więcej linii, więc jeśli używasz czegoś takiego jak 'start powershell -noexit -executionpolicy unrestricted -file" PowerShell script.ps1 "' to musisz go otworzyć w PowerShell, a nie w Command Prompt, dzięki czemu można zobaczyć pełną historię skryptu. – mythofechelon

Odpowiedz

6

Jeśli naprawdę chcesz niebieskie tło, w skrypcie dodaj kod, aby zmienić kolor tła.

#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 
+0

+1. :) Miło (i szybko też). –

3

To właściwością link Shell w menu Start, który rozpoczyna PowerShell, więc trzeba było przejść przez to:

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

To nie całkiem, to zależy trochę od miejsca, które rezyduje (i może włamać się na wersje obcojęzyczne).

+0

Próbowałem go na XP i bez pracy. Mam czarną skorupę. 'start" "" C: \ Documents and Settings \ All Users \ Menu Start \ Programy \ Akcesoria \ Windows PowerShell \ Windows PowerShell.lnk "'. Musiałem użyć programu 'explorer.exe', aby uczcić właściwości LNK. –

+0

Cóż, jestem w systemie Windows 7 i działało tutaj. Ale właśnie to próbowałem ci powiedzieć - jest to niechlujna sprawa i prawdopodobnie się rozpadnie (zwłaszcza w starszych systemach operacyjnych). – Joey

1

PowerShell można wywołać tak, że zaczyna się ze skryptem

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