Khởi chạy tệp powershell script bằng lệnh command hoặc từ tệp bactch
vào
15 thg 10, 2018
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
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:
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 đó
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 đó
Nội dung chính