@echo off
set url="%~1"
set profileName="%~2"
if "%profileName:~1,-1%"=="" (
set profileName="Home"
)
set appName="Proxomitron"
:: Проверка: запущен ли Proxomitron
call :taskCheck "%appName:~1,-1%.exe"
:: Если не запущен
if not %ERRORLEVEL%==1 (
echo Load: %appName%
start /D"%~dp0_Proxy\%appName:~1,-1%\" %appName:~1,-1%.exe^
|| call :errMsg %appName%
)
set appName="Firefox"
echo Load: %appName%
:: Проверка: запущен ли Firefox
call :taskCheck "%appName:~1,-1%.exe"
REM Если запуск с URL-ом
if not "%url:~1,-1%"=="" (
REM Если с URL-ом и Firefox уже запущен (не работает, если Firefox запускался с параметро -no-remote)
if %ERRORLEVEL%==1 (
start /D"%~dp0%appName:~1,-1%" %appName:~1,-1%.exe^
-profile "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%"^
-url "%url:~1,-1%"^
|| call :errMsg %appName%
) else (REM если с URL-ом и Firefox не запущен
pushd "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%"
call "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%\user.bat"
popd
start "" "%~dp0%appName:~1,-1%\%appName:~1,-1%.exe"^
-profile "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%"^
-url "%url:~1,-1%"^
|| call :errMsg %appName%
)
) else (REM Если без URL-а
REM Если без URL-а и Firefox уже запущен (для запуска нескольких профилей. Без -no-remote другой профиль не запускается)
if %ERRORLEVEL%==1 (
start "" "%~dp0%appName:~1,-1%\%appName:~1,-1%.exe"^
-new-instance -no-remote^
-profile "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%"^
|| call :errMsg %appName%
) else (REM Если без URL-а и Firefox не запущен
pushd "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%"
call "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%\user.bat"
popd
start "" "%~dp0%appName:~1,-1%\%appName:~1,-1%.exe"^
-profile "%~dp0%appName:~1,-1%\(profiles)\%profileName:~1,-1%"^
|| call :errMsg %appName%
)
)
goto :Quit
::==[ Functions ]===============================================================
::--[ Проверка: запущен ли процесс ]--------------------------------------------
:taskCheck
chcp 866 > nul
for /f %%i in ('tasklist ^| findstr /i /c:%1') do (
chcp 1251 > nul
REM Процесс запущен
exit /b 1
)
chcp 1251 > nul
REM Процесс не запущен
exit /b 0
::--[ ErrorMessage ]------------------------------------------------------------
:errMsg
echo.
echo ERROR: %1
echo.
pause
exit /b 0
:://////////////////////////////////////////////////////////////////////////////
:://////////////////////////////////////////////////////////////////////////////
:Quit
::==[ Addons ]==================================================================
|