www.torsten-keil.net

Opera vom USB-Stick

Das Batch-Skript




Das Startskript: startOpera.cmd
rem +++ OPERA FROM USB-STICK - SCRIPT VERSION 1.2 +++
@echo off
rem Defaultwerte setzen
SET OperaStartDir="%~dp0"
SET OperaTempDir=
SET JUMP_BACK_TO=

rem Parameter auswerten
IF /i "%~1"=="/?" goto HOW_TO_USE
IF /i "%~1"=="-?" goto HOW_TO_USE
IF /i "%~1"=="/h" goto HOW_TO_USE
IF /i "%~1"=="-h" goto HOW_TO_USE
IF /i "%~1"=="--h" goto HOW_TO_USE
IF /i "%~1"=="--help" goto HOW_TO_USE
IF NOT "%~1"=="" goto WITH_PARAM
IF "%~1"=="" goto TEMP

rem Mit übergebenem Parameter testen
:WITH_PARAM
SET OperaTempDir=%~1
SET JUMP_BACK_TO=TEMP
goto PREPARE_PATH

rem Zuerst im System-TEMP versuchen
:TEMP
IF "%TEMP%"=="" (
   goto TMP
)
SET OperaTempDir=%TEMP%
SET JUMP_BACK_TO=TMP
goto PREPARE_PATH

rem Zuerst im System-TMP versuchen
:TMP
IF "%TMP%"=="" (
   goto LW_D
)
SET OperaTempDir=%TMP%
SET JUMP_BACK_TO=LW_D
goto PREPARE_PATH

rem Laufwerk D: vorhanden?
:LW_D
SET OperaTempDir=D:\
SET JUMP_BACK_TO=LW_C
goto PREPARE_PATH

rem Laufwerk C:\ vorhanden?
:LW_C
SET OperaTempDir=C:\
SET JUMP_BACK_TO=NO_VALID_PATH_FOUND
goto PREPARE_PATH

:NO_VALID_PATH_FOUND
echo ERROR: Es konnte kein passendes Ziel-Verzeichnis gefunden werden
exit /b

:COPY_NOW
rem create batchfile "errlvl0.cmd"
echo rem *** created by startOpera.cmd *** >%OperaTempDir%errlvl0.cmd
echo exit /b 0 >>%OperaTempDir%errlvl0.cmd
rem Copy now
echo Copy OPERA from %OperaStartDir% to %OperaTempDir%
xcopy %OperaStartDir%* %OperaTempDir% /E /Q >nul 2>nul
if errorlevel 1 (
   rem reset errorlevel and pause
   CALL %OperaTempDir%errlvl0.cmd
   echo ERROR: Fehler beim kopieren - Abbruch
   pause
   goto CLEANUP
)
ren %OperaTempDir%opera.ex_ opera.exe
pushd %OperaTempDir%
rem Pfade anpassen ... für Variante 3 die folgende Zeile einkommentieren
rem adjpath.exe
echo Start OPERA ...
opera.exe
popd
if errorlevel 1 (
   rem reset errorlevel and pause
   CALL %OperaTempDir%errlvl0.cmd
   pause
)
echo OPERA beendet

:CLEANUP
echo Clean up ...
rmdir /S /Q %OperaTempDir%
if exist %OperaTempDir% (
   echo Clean up schlug fehl - Verzeichnis %OperaTempDir% per Hand löschen!
   pause
)
exit /b

:HOW_TO_USE
echo "startOpera /?"
echo      zeigt diese Hilfe an
echo "startOpera"
echo      versucht eine der folgenden Standard-Zielangaben:
echo      TEMP, TMP, D:\ und C:\
echo "startOpera <Laufwerk und Pfadangabe>"
echo      versucht zuerst in das angegebene Verzeichnis zu kopieren.
echo      Schlägt das fehl, werden die Standard-Zielangaben verwendet.
pause
exit /b

:PREPARE_PATH
IF NOT EXIST %OperaTempDir% (
   echo %OperaTempDir% nicht gefunden
   SET OperaTempDir=
   goto %JUMP_BACK_TO%
)
echo %OperaTempDir% gefunden
:AGAIN
IF "%OperaTempDir:~-1%"=="\" SET OperaTempDir=%OperaTempDir:~0,-1%
IF "%OperaTempDir:~-1%"=="\" goto AGAIN
SET OperaTempDir=%OperaTempDir%\OperaTempDir\
md %OperaTempDir% 2>nul
if errorlevel 1 (
   echo ERROR: kein Schreibzugriff auf %OperaTempDir% - Abbruch
   SET OperaTempDir=
   goto %JUMP_BACK_TO%
)
goto COPY_NOW

rem +++ OPERA FROM USB-STICK - WWW.TORSTEN-KEIL.NET +++
rem +++ LAST LINE OF SCRIPT +++