2012-02-16 31 views
6

Tôi có một tập tin thực thi bắt đầu một kịch bản PowerShell.Cửa sổ PowerShell khi bắt đầu từ một tập tin thực thi

hàng loạt file:

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

MyScript.ps1:

Write-Output "Hello World!" 

Nó hoạt động tốt, với một ngoại lệ. Sự xuất hiện của cửa sổ giống như cmd.exe cũ (nền đen) và không phải là PowerShell (nền màu xanh).
Làm thế nào tôi có thể nhận được cửa sổ PowerShell thực sự, nếu tôi bắt đầu nó từ một tập tin thực thi?

Cảm ơn.

+2

Cảm ơn tất cả những ai đã gửi cho đến nay. Tôi không thực sự quan tâm nếu nền màu xanh hoặc đen. Tôi muốn biết tại sao điều này lại xảy ra ngay từ đầu. Nếu tôi làm điều này: BẮT ĐẦU notepad thì Notepad khởi động bình thường và không có dấu vết của cmd.exe xung quanh. Notepad trông giống hệt như khi tôi bắt đầu nó từ một phím tắt. Tại sao nó khác với PowerShell? Tại sao nó khác nhau nếu tôi bắt đầu nó từ một tập tin batch vs từ một phím tắt? Và tôi thích có thể dán bằng nhấp chuột phải trong PowerShell mới. Cảm ơn. – mcu

+0

Ngoài ra, theo mặc định, Command Prompt chỉ giữ lại 300 dòng trong khi PowerShell giữ lại MANY nhiều dòng hơn vì vậy nếu bạn đang sử dụng một cái gì đó như 'bắt đầu powershell -noexit -executionpolicy unrestricted -file" PowerShell script.ps1 "' thì bạn cần nó thực sự mở trong PowerShell, không phải Command Prompt, vì vậy bạn có thể xem toàn bộ lịch sử của tập lệnh. – mythofechelon

Trả lời

6

Nếu bạn thực sự muốn có nền màu xanh, trong đoạn mã của bạn, hãy thêm mã để thay đổi màu nền.

#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. :) Nice (và nhanh chóng, quá). –

3

Đó là một tài sản của liên kết vỏ trong Start Menu mà bắt đầu PowerShell, vì vậy bạn sẽ phải đi qua đó:

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

Nó không đẹp, nó phụ thuộc một chút vào nơi cư trú (và có thể phá vỡ các phiên bản ngôn ngữ nước ngoài).

+0

Tôi đã dùng thử trên XP và không hoạt động. Tôi có một cái vỏ đen. 'bắt đầu" "" C: \ Documents and Settings \ Tất cả người dùng \ Start Menu \ Programs \ Accessories \ Windows PowerShell \ Windows PowerShell.lnk "'. Tôi đã phải sử dụng 'explorer.exe' cho nó để tôn vinh các thuộc tính LNK. –

+0

Vâng, tôi đang sử dụng Windows 7 và nó hoạt động ở đây. Nhưng đó là những gì tôi đã cố gắng nói với bạn - đó là một chuyện lộn xộn và có khả năng phá vỡ (đặc biệt là trong các hệ điều hành cũ). – Joey

1

Bạn có thể gọi PowerShell để nó bắt đầu tự với kịch bản

Powershell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy RemoteSigned -noexit -File ""Full_Path_of_MyScript.ps1""'}" 
Các vấn đề liên quan