Dein If-Konstrukt ist doppelt-gemoppelt, da der &&-Operator eine indirekte If-Abfrage ist. Außerdem weiß ich nicht, ob sich das else einfach so dahinterstellen lässt, ansonsten müsste der Rest funktionieren.
Hab's gerade mal bei mir getestet:
Code:
@echo off
tasklist | find /i "opera.exe" > nul
if errorlevel == 1 (
set WasAlreadyRunning=
) else (
set WasAlreadyRunning=Yep
)
if "%ProgramFiles(x86)%"=="" (
set "x86root=%ProgramFiles%"
) else (
set "x86root=%ProgramFiles(x86)%"
)
start "%x86root%\opera\opera.exe" "http://google.de"
ping -n 4 127.0.0.1 > nul
if "%WasAlreadyRunning%"=="" (
taskkill /IM "opera.exe" > nul
)
Du könntest das aber auch mit Netcat ohne Umweg über den Browser machen, also das HTTP-Request direkt an das WebInterface deines Routers senden.
Hab mir irgendwann mal ein kleines Batch-Skript dafür geschrieben und könnte es raussuchen, falls du es brauchst (das Request hängt natürlich immer vom Interface des Routers ab, ist also nicht universell)