PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Batch Datei


UpMerge
2008-08-18, 13:53:15
Hallo!

Win XP SP3

Hab mir eine firefox.bat geschrieben, die mir den Netzwerkadapter startet und dann die firefox.exe.
Beim beenden von Firefox wird der Netzwerkadapter auch wieder beendet.
Hab das selbe auch mit TeamSpeak.exe und Steam.exe gemacht.

Hab mir dann noch eine Schleife aus dem Internet hinein kopiert, die abfragt
ob firefox.exe oder Teamspeak.exe noch läuft, damit wenn ich z.B: Firefox schließe aber Teamspeak noch läuft der Netzwerkadapter nicht beendet wird.
Hat auch gut funktioniert!

Möchte jetzt aber noch die Steam.exe einbauen, damit alle drei unter den selben Bedinungen laufen.

Möchte in der IF-Bedinung der For-Schleife eine doppelte Abfrage machen, komme aber nicht dahinter wie das funktioniert.

Die Bat-Dateien:

Firefox:

F:\Programme\Firefox\OnOffSwitch\devcon enable "PCI\VEN_10EC&DEV_8167&REV_10"
"C:\Programme\Mozilla Firefox\firefox.exe"



@echo off
set ProgEXE=TeamSpeak.exe
set tempdatei=%temp%\TempDatei1.txt


tasklist /FI "IMAGENAME eq %ProgEXE%" /FO CSV>%tempdatei%


for /F "skip=2 tokens=1 delims=," %%f in (%tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE%"" echo Prozess %ProgEXE% läuft
goto ende

)
echo Prozess %ProgEXE% läuft nicht!
F:\Programme\Firefox\OnOffSwitch\devcon disable "PCI\VEN_10EC&DEV_8167&REV_10"
del %tempdatei%
:ende
exit

TeamSpeak

F:\Programme\Teamspeak\devcon enable "PCI\VEN_10EC&DEV_8167&REV_10"
"C:\Programme\Teamspeak2_RC2\TeamSpeak.exe"

@echo off
set ProgEXE=firefox.exe
set tempdatei=%temp%\TempDatei.txt


tasklist /FI "IMAGENAME eq %ProgEXE%" /FO CSV>%tempdatei%


for /F "skip=2 tokens=1 delims=," %%f in (%tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE%""echo Prozess %ProgEXE% läuft
goto ende

)
echo Prozess %ProgEXE% läuft nicht!
F:\Programme\Teamspeak\devcon disable "PCI\VEN_10EC&DEV_8167&REV_10"
del %tempdatei%
:ende
exit

Steam

F:\Programme\Steam\devcon enable "PCI\VEN_10EC&DEV_8167&REV_10" choice T:10
E:\Steam\Steam.exe

@echo off
set ProgEXE=TeamSpeak.exe
set tempdatei=%temp%\TempDatei1.txt


tasklist /FI "IMAGENAME eq %ProgEXE%" /FO CSV>%tempdatei%


for /F "skip=2 tokens=1 delims=," %%f in (%tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE%"" echo Prozess %ProgEXE% läuft
goto ende

)
echo Prozess %ProgEXE% läuft nicht!start
F:\Programme\Steam\devcon disable "PCI\VEN_10EC&DEV_8167&REV_10"
del %tempdatei%
:ende
exit

Für Eure Hilfe bin ich dankbar!!! :)

Berni
2008-08-18, 15:17:38
Irgendwie so würde ichs probieren:
if "%%f"==""%ProgEXE%"" goto zweitesif
:back
[restlicher code]
exit

zweitesif:
if x == a goto bla
goto back

bla:
echo Prozess %ProgEXE% läuft
goto ende

Edit: Oder einfacher wärs so:
if "%%f"==""%ProgEXE%"" (
if x == a (
echo Prozess %ProgEXE% läuft
goto ende
)
)

UpMerge
2008-08-18, 15:31:34
OK, werd ich mir gleich mal anschauen!
Danke.

Eine else if Anweisung funktioniert in Batch Dateien nicht ?

UpMerge
2008-08-18, 15:58:21
Hab das jetzt so ausprobiert:

F:\Programme\Steam\devcon enable "PCI\VEN_10EC&DEV_8167&REV_10" choice T:10
E:\Steam\Steam.exe

@echo off
set ProgEXE=TeamSpeak.exe
set ProgEXE1=firefox.exe
set tempdatei=%temp%\TempDatei1.txt
set Tempdatei=%temp%\TempDatei2.txt


tasklist /FI "IMAGENAME eq %ProgEXE%" /FO CSV>%tempdatei%
tasklist /FI "IMAGENAME eq %ProgXE1%" /FO CSV>%Tempdatei%


for /F "skip=2 tokens=1 delims=," %%f in (%tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE%"" (goto ende) else goto zweitif
)


:zweitif
for /F "skip=2 tokens=1 delims=," %%f in (%Tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE1%"" (goto ende)

echo Prozess %ProgEXE% läuft nicht!start
F:\Programme\Steam\devcon disable "PCI\VEN_10EC&DEV_8167&REV_10"
del %tempdatei%
del %Tempdatei%
:ende
exit


Wenn Teamspeak gestartet ist funktioniert es aber wenn Firefox läuft geht es nicht.
Schaut so aus als würde er die :zweitif nicht durchlaufen oder deusche ich mich hier?

Berni
2008-08-18, 16:41:21
Achso jetzt verstehe ich glaub ich was du willst. Wieso machst dus nicht einfach so:
F:\Programme\Steam\devcon enable "PCI\VEN_10EC&DEV_8167&REV_10" choice T:10
E:\Steam\Steam.exe

@echo off
set ProgEXE=TeamSpeak.exe
set ProgEXE1=firefox.exe
set tempdatei=%temp%\TempDatei1.txt

tasklist /FI "IMAGENAME eq %ProgEXE%" /FO CSV>%tempdatei%

for /F "skip=2 tokens=1 delims=," %%f in (%tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE%"" goto ende
)

tasklist /FI "IMAGENAME eq %ProgEXE1%" /FO CSV>%tempdatei%

for /F "skip=2 tokens=1 delims=," %%f in (%tempdatei%) do (
echo gefiltert: [%%f]
if "%%f"==""%ProgEXE1%"" goto ende
)

echo Prozess %ProgEXE% und %ProgEXE1% läuft nicht!start
F:\Programme\Steam\devcon disable "PCI\VEN_10EC&DEV_8167&REV_10"
del %tempdatei%
:ende
exit

UpMerge
2008-08-18, 17:24:58
Vielen Dank!!
Jetzt läufts!!