Khởi chạy tệp powershell script bằng lệnh command hoặc từ tệp bactch

Khi bạn viết một tệp PowerShell Script (.ps1) bạn khởi chạy tệp bằng cách chuột phải chọn run width PowerShell và bạn cũng có thể chạy được tệp bằng lệnh command trong cmd hoặc viết tệp batch (.bat). Có một số tập lệnh thực thi bắt buộc phải sử dụng đến poweshell như gỡ bỏ ứng dụng, tắt tính năng..., bạn có thể kết hợp viết lệnh command trong tệp batch khởi chạy tệp script

Các tệp powershell script nên được lưu vào một thư mục cố định chẳng hạn tạo mới một thư mục tên data trong thư mục data lại tạo mới thư mục scripts và lưu các tệp script vào thư mục này


Khi muốn chạy một tệp script sử dụng dòng lệnh command sau trong cmd

Copy
powershell.exe -ExecutionPolicy Bypass -Command "& 'C:\data\scripts\Start-Service.ps1'"

Trong đó C:\data\scripts\Get-AppxPackage.ps1 là đường dẫn đến tệp Get-AppxPackage.ps1 đang lưu tệp Start-Service.ps1 trong thư mục scripts của thư mục data, thư mục data bạn có thể lưu vào ổ đĩa (C) chẳng hạn

Hình minh họa


Trong trường hợp nếu muốn chạy nhiều tệp script với các menu tùy chọn các bạn có thể viết tệp batch thêm menu với các tùy chọn khởi chạy script

Tham khảo thêm: Cách sử dụng tùy chọn choice command và set command trong viết tệp batch

Mình lấy ví dụ mình sẽ viết nội dung tệp batch như sau:

Copy
@echo off
title Run PowerShell Script (.ps1)
:menu
cls
echo.Main menu
echo.
echo. ID Option
echo.
echo. 1 Get-AppxPackage
echo. 2 Remove-AppxPackage
echo. 3 Add-AppxPackage
echo. 4 Get-AppxProvisionedPackage
echo. 5 Remove-AppxProvisionedPackage
echo. 6 Enable Windows Features
echo. 7 Disable Windows Features
echo. 8 Start Service
echo. 9 Stop Service
echo.
choice /c:123456789 /n /m "Select ID for continue : "
if %errorlevel% EQU 1 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Get-AppxPackage.ps1'" && goto menu
if %errorlevel% EQU 2 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Remove-AppxPackage.ps1'" && goto menu
if %errorlevel% EQU 3 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Add-AppxPackage.ps1'" && goto menu
if %errorlevel% EQU 4 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Get-AppxProvisionedPackage.ps1'" && goto menu
if %errorlevel% EQU 5 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Remove-AppxProvisionedPackage.ps1'" && goto menu
if %errorlevel% EQU 6 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Enable-WindowsOptionalFeature.ps1'" && goto menu
if %errorlevel% EQU 7 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Disable-WindowsOptionalFeature.ps1'" && goto menu
if %errorlevel% EQU 8 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Start-Service.ps1'" && goto menu
if %errorlevel% EQU 9 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0data\scripts\Stop-Service.ps1'" && goto menu

Sau đó mình lưu tệp batch này cùng với thư mục data


Chạy tệp batch trong đó có các tùy chọn chạy powershell script


Các bạn lưu ý khi viết tệp batch thì %~dp0 là đường dẫn bất kỳ đến thư mục đang lưu tệp batch chẳng hạn thư mục Tuan đang lưu tệp batch và thư mục data, các bạn có thể lưu thư mục Tuan này ở bất kỳ đâu và khi chạy tệp batch tự tìm đến đường dẫn chính xác đến thư mục đó
Bài đăng mới hơn Bài đăng cũ hơn
Bài viết này có hữu ích không?