2017-03-08 61 views
5

我有一個Windows PowerShell腳本,可以在我的用戶的服務器上使用。我不希望他們不得不出去找PS腳本,點擊右鍵,然後點擊「使用powershell運行」或者「打開」。 Windows(至少Win 7)默認程序是記事本。如何在批處理文件中「打開」

我想做一個批處理文件來做到這一點。我已經試過:

start "c:\myfile.ps1" powershell.exe 

和其他一些變化,但我已經能夠做的就是要麼開始PowerShell或在其默認程序中打開我的文件,記事本。

任何意見是讚賞!謝謝!

紅利問題:如果我以管理員身份運行我的批處理文件,它是否也會以管理員身份運行我的PS腳本?

+1

'start「c:\ myfile.ps1」powershell.exe' - >'start「」powershell.exe「c:\ myfile.ps1」' –

+0

您是否想說試試:start「」powershell.exe「c :\ myfile.ps1「?因爲我已經嘗試過(並且再次嘗試),並且它會在記事本中打開我的ps1文件。 – coinbird

+1

是的,他是。現在你正在使用文件路徑作爲你開始的標題。檢查語法[here](https://ss64.com/nt/start.html)。 – TheMadTechnician

回答

6

只需使用-file論據PowerShell.exe在批處理文件:

PowerShell.exe -file c:\MyFile.ps1 

另外,一些用戶可能有自己的執行策略設置的東西,會被執行限制腳本,所以你可能要這樣做:

PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1 

如果你想使用start啓動它,你可以做這樣安斯加爾Wiechers注意到運行:

start "" PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1 

有關使用start的一些注意事項:默認情況下,它將在單獨的窗口中啓動PowerShell,並繼續執行批處理文件的其餘部分,而無需等待PowerShell窗口關閉。如果這是不可取的,你有兩個選擇。您可以指定/wait,它將在繼續執行批處理文件之前等待PowerShell窗口關閉,或者您可以使用/ B選項將不會打開一個新窗口,並且將在當前控制檯窗口中執行PowerShell。

最後,如果你的批處理文件在Administrator環境下運行,那麼PowerShell也是。

+2

可能值得注意的是,'start'在新窗口中啓動程序,而直接調用'powershell.exe'會在當前(控制檯)窗口中運行解釋器。 –

+0

完美。我只用了start,因爲我認爲它是啓動程序的語法(如powershell)的一部分。非常感謝你的幫助! – coinbird

相關問題