Инструменты пользователя

Инструменты сайта


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" (расширенная версия)

Мини версия

Текст кода "run_the_same_name_ps1.bat" (мини версия)

Версия с запросом повышения прав

Если в скрипте 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 /b
windows/scripts/cmd/launcher_same_name_ps1.1772179009.txt.gz · Последнее изменение:

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki