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:datascriptsStart-Service.ps1'"

Trong đó C:datascriptsGet-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 "& '%~dp0datascriptsGet-AppxPackage.ps1'" && goto menu

if %errorlevel% EQU 2 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsRemove-AppxPackage.ps1'" && goto menu

if %errorlevel% EQU 3 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsAdd-AppxPackage.ps1'" && goto menu

if %errorlevel% EQU 4 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsGet-AppxProvisionedPackage.ps1'" && goto menu

if %errorlevel% EQU 5 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsRemove-AppxProvisionedPackage.ps1'" && goto menu

if %errorlevel% EQU 6 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsEnable-WindowsOptionalFeature.ps1'" && goto menu

if %errorlevel% EQU 7 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsDisable-WindowsOptionalFeature.ps1'" && goto menu

if %errorlevel% EQU 8 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsStart-Service.ps1'" && goto menu

if %errorlevel% EQU 9 powershell.exe -ExecutionPolicy Bypass -Command "& '%~dp0datascriptsStop-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 đó

View Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Published by
4 years ago