windows:scripts:cmd:launcher_same_name_ps1
Это старая версия документа!
Содержание
Лаунчер для PowerShell скриптов
Описание (README)
run_the_same_name_ps1.bat - скрипт который запускает PowerShell (*.ps1) скрипты с таким же названием как у *.bat файла в каталоге рядом. С возможностью передачи аргументов без проверки на запуск с правами администратора.
Повышение прав, если необходимо, должно быть запрошено в самом PowerShell скрипте.
Пример:
browser.bat
будет запущен
browser.ps1
Расширенная версия (рекомендуется)
Мини версия
- run_the_same_name_ps1.bat
@echo off setlocal set "PS_EXE=%ProgramFiles%\PowerShell\7\pwsh.exe" if not exist "%PS_EXE%" set "PS_EXE=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" set "PS1=%~dp0%~n0.ps1" "%PS_EXE%" -NoProfile -ExecutionPolicy Bypass -File "%PS1%" %* endlocal pause exit
Версия с запросом повышения прав
Если в скрипте PowerShell (*.ps1) не реализован запрос на повышение прав для выполнения, но оно требуется, то можно запускать через этот скрипт.
Рекомендуется запрос на повышение прав делать через сам скрипт PowerShell.
- run_the_same_name_ps1.bat
@echo off setlocal title PowerShell Script Launcher :: ========================================================== :: UNIVERSAL PS1 LAUNCHER :: Runs a PowerShell script with the same name as this BAT :: Compatible with PowerShell 5.x and 7+ :: Author: takraztak :: ========================================================== :: --- Admin rights check --- net session >nul 2>&1 if %errorlevel% neq 0 ( echo. echo [!] Administrator privileges required. Restarting... powershell -NoLogo -NoProfile -Command "Start-Process '%~f0' -Verb RunAs" exit /b ) cls echo. echo ========================================================== echo UNIVERSAL PS1 LAUNCHER echo ========================================================== echo. :: --- Determine PowerShell executable --- set "PS_EXE=%ProgramFiles%\PowerShell\7\pwsh.exe" if not exist "%PS_EXE%" set "PS_EXE=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" :: --- Determine script name (same as BAT) --- set "PS1=%~dp0%~n0.ps1" if not exist "%PS1%" ( echo [ERR] PowerShell script not found: echo %PS1% echo. echo Create a file with the same name and .ps1 extension. echo Example: echo %~n0.ps1 echo. pause exit /b 1 ) echo [OK] Using PowerShell: %PS_EXE% echo [OK] Executing script : %PS1% echo ---------------------------------------------------------- echo. :: --- Run script --- "%PS_EXE%" -NoLogo -NoProfile -ExecutionPolicy Bypass -File "%PS1%" %* echo. echo ---------------------------------------------------------- echo [DONE] Script finished. echo ========================================================== echo. endlocal pause exit
windows/scripts/cmd/launcher_same_name_ps1.1772178873.txt.gz · Последнее изменение: —
