從批處理檔案執行 PowerShell 指令碼

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 使用 -File 引數從批處理檔案執行 PowerShell 指令碼
  2. 使用 RemoteSigned 作為 -ExecutionPolicy 從批處理檔案執行 PowerShell 指令碼
  3. 使用 Bypass 開關從批處理檔案執行 PowerShell 指令碼
  4. 通過以管理員身份開啟 PowerShell 從批處理檔案執行 PowerShell 指令碼
從批處理檔案執行 PowerShell 指令碼

PowerShell 指令碼是一個使用 .ps1 副檔名的文字檔案,其中包含一組命令。PowerShell 按順序執行這些命令。

批處理檔案是使用 .bat 副檔名的文字檔案。它還包含一組按順序執行的命令。

這些命令可以通過開啟 .bat 檔案來執行。本教程將教你從批處理檔案執行 PowerShell 指令碼。

我們建立了一個 PowerShell 指令碼 myscript.ps1,其中包含以下命令。

Write-Host "Your script is executed successfully."

我們還建立了一個批處理檔案 test.bat 來執行上述 PowerShell 指令碼。我們將使用批處理檔案 test.bat 執行 PowerShell 指令碼 myscript.ps1

使用 -File 引數從批處理檔案執行 PowerShell 指令碼

你可以使用 -File 引數呼叫 PowerShell 指令碼。這是從命令提示符執行 PowerShell 指令碼的簡單命令。

test.bat 檔案中使用以下命令來執行 PowerShell 指令碼。 @echo off 命令禁用回顯或阻止顯示批處理檔案內容。

pause 命令會停止批處理檔案的執行,直到你按下除 CtrlShiftNumberLock 之外的任何鍵。

@echo off
powershell -File C:\New\myscript.ps1
pause

輸出:

Your script is executed successfully.
Press any key to continue . . .

使用 RemoteSigned 作為 -ExecutionPolicy 從批處理檔案執行 PowerShell 指令碼

你可以將 RemoteSigned 設定為 -ExecutionPolicy 以從批處理檔案執行 PowerShell 指令碼。 -ExecutionPolicy 引數指定 PowerShell 執行策略。

@echo off
powershell -ExecutionPolicy RemoteSigned -File C:\New\myscript.ps1
pause

輸出:

Your script is executed successfully.
Press any key to continue . . .

使用 Bypass 開關從批處理檔案執行 PowerShell 指令碼

你還可以使用 Bypass 作為執行策略從批處理檔案執行 PowerShell 指令碼。

@echo off
powershell -ExecutionPolicy Bypass -File C:\New\myscript.ps1
pause

輸出:

Your script is executed successfully.
Press any key to continue . . .

或者,你也可以執行以下命令。

@echo off
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\New\myscript.ps1'"
pause

輸出:

Your script is executed successfully.
Press any key to continue . . .

通過以管理員身份開啟 PowerShell 從批處理檔案執行 PowerShell 指令碼

以下命令以管理員身份開啟 PowerShell 以執行 PowerShell 指令碼。當你開啟批處理檔案並選擇時,輸出將顯示在 Windows PowerShell 上。

@echo off
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\New\myscript.ps1""' -Verb RunAs}"
ps1'"
pause

輸出:

Your script is executed successfully.
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell Script