
72417
23.09.2010, aktualisiert um 19:50:54 Uhr
Batchsyntax unterschiedlich zwischen Win7 und XP?
Moin Moin,
in meinem anderen Thema habe ich das Problem der Druckerinstallation über Windowsconsole behandelt, damit bin ich fertig geworden. Nun beiße ich mir grade an meinen ersten Gehversuchen unter Batchprogrammierung die Zähne aus.
Hier mein Script (wie es unter Win7 funktioniert) und welches nicht unter Win XP läuft.
Vielleicht hat jemand ja einen Rat.
führt er schon nicht aus, als Ausgabe kommt eine Leerzeile,sprich er setzt die Variable nichteinmal.
Jemand einen Rat?
MfG
Chris
in meinem anderen Thema habe ich das Problem der Druckerinstallation über Windowsconsole behandelt, damit bin ich fertig geworden. Nun beiße ich mir grade an meinen ersten Gehversuchen unter Batchprogrammierung die Zähne aus.
Hier mein Script (wie es unter Win7 funktioniert) und welches nicht unter Win XP läuft.
Vielleicht hat jemand ja einen Rat.
@echo off
for /F "tokens=13,* delims=:" %%n in ('ipconfig^|find /I "IPv4-Adresse"') do set IP=%%n
if %IP% == 10.1.1.55 (
rundll32 printui.dll,PrintUIEntry /if /b "Drucker_0552" /f %windir%\druckertreiber\oki\5450n\OK72s2lu.inf /r "usb001" /m "OKI C5450n(PCL)"
)else (
echo."Fehlgeschlagen, Meine IP:%IP% (erwartet:10.1.1.55)"
)
pause
Wie gesagt, unter Win7 funktioniert es insoweit, dass er mir die Fehlermeldung ausgibt, was auch gut ist.
Unter XP habe ich es leicht abgeändert (keine native IPv6 Unterstützung deswegen muss man nach was anderem suchen ;) )
Das Script:
@echo off
for /F "tokens=13,* delims=:" %%n in ('ipconfig^|find /I "IP"') do set IP=%%n
if %IP% == 10.1.1.55 (
rundll32 printui.dll,PrintUIEntry /if /b "Drucker_0552" /f %windir%\druckertreiber\oki\5450n\OK72s2lu.inf /r "usb001" /m "OKI C5450n(PCL)"
)else (
echo."Fehlgeschlagen, Meine IP:%IP% (erwartet:10.1.1.55)"
)
pause
Mein Problem ist, dass er die Variable nicht setzt, also zum Vergleich:
for /F "tokens=13,* delims=:" %%n in ('ipconfig^|find /I "IP"') do set IP=%%n
echo.%IP%
Jemand einen Rat?
MfG
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 151626
Url: https://administrator.de/forum/batchsyntax-unterschiedlich-zwischen-win7-und-xp-151626.html
Ausgedruckt am: 06.04.2025 um 02:04 Uhr
6 Kommentare
Neuester Kommentar

Moin,
das mit echo off - bei Problemchenbätchen ist mein alter Hut...
1.001 Wege nach Rom
Und dann natürlich auch: - denn %windir%\druckertreiber\oki\ ist kein std.
Gruß
edit @ tse schoka: IPconfig kann - darf jeder Dau - die Gegenfrage war also leicht flüssiger als flüssig überflüssig /edit
das mit echo off - bei Problemchenbätchen ist mein alter Hut...
1.001 Wege nach Rom
for /F "tokens=2,3,4,5 delims=:. " %%a in ('ipconfig^|find /I "IP"') do set IP=%%a.%%b.%%c.%%d
for /F "tokens=3-6 delims=:. " %a in ('ping %computername%^|find "TTL"') do set IP=%%a.%%b.%%c.%%d
if exist %windir%\druckertreiber\oki\5450n\OK72s2lu.inf rundll32 printui.dll,PrintUIEntry /if /b "Drucker_0552" /f %windir%\druckertreiber\oki\5450n\OK72s2lu.inf
Gruß
edit @ tse schoka: IPconfig kann - darf jeder Dau - die Gegenfrage war also leicht flüssiger als flüssig überflüssig /edit

Moin,
bitte schreibe deine Batch in Code Blöcke...(siehe Formatierungshilfe)
Ich vermute deine Else ist zu komplex - möglicherweise auch nicht.
Try this one
Gruß
bitte schreibe deine Batch in Code Blöcke...(siehe Formatierungshilfe)
Ich vermute deine Else ist zu komplex - möglicherweise auch nicht.
Try this one
Rem Teststatus kein @echo off
:: Hier wird die IP ausgelesen und in die Variable "IP" abgespeichert
Rem for /F "tokens=2,3,4,5 delims=:. " %%a in ('ipconfig^|find /I "IP"') do set IP=%%a.%%b.%%c.%%d
Rem da es wohl es nur um das letzte Oktet geht...
for /F "tokens=5 delims=:. " %%a in ('ipconfig^|find /I "IP"') do set IP=%%a
:: Nun beginnt er seine Abfrage und testet die Variable ob die eigene IP bei den Gesuchten dabei ist
::Drucker Installation für den Raum R_Test
if "%IP%"=="28" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_test" /f %windir%\druckertreiber\oki\C5450n\Ok72s2lu.inf /r "usb001" /m "OKI C5450n(PCL)" && goto end
::Drucker Installation für den Raum R_0524
if "%IP%"=="34" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_R0524" /f %windir%\druckertreiber\brother\7030\brpr7030.inf /r "usb001" /m "DCP-7030" && goto end
::Drucker Installation für den Raum R_0532
if "%IP%"=="42" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_R0532" /f %windir%\druckertreiber\brother\7030\brpr7030.inf /r "usb001" /m "DCP-7030" && goto end
::Drucker Installation für den Raum R_0542
if "%IP%"=="53" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_R0542" /f %windir%\druckertreiber\brother\7030\brpr7030.inf /r "usb001" /m "DCP-7030" && goto end
::Drucker Installation für den Raum R_1534
if "%IP%"=="66" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_R1534" /f %windir%\druckertreiber\brother\1450\OEMHL01A.INF /r "usb001" /m "Brother HL-1450 series" && goto end
::Drucker Installation für den Raum R_1544
if "%IP%"=="73" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_R1544" /f %windir%\druckertreiber\brother\1450\OEMHL01A.INF /r "usb001" /m "Brother HL-1450 series" && goto end
::Drucker Installation für den Raum R_1550
if "%IP%"=="82" rundll32 printui.dll,PrintUIEntry /if /Z /b "Drucker_R1550" /f %windir%\druckertreiber\oki\B4350\B43503e.inf /r "usb002" /m "OKI B4350(PCL)" && goto end
::Beendung der Schleife mit einem Log für den jeweiligen Client
echo An diesem Computer ist kein Drucker angeschlossen/Oder ein anderer Fehler> log_%COMPUTERNAME%.txt
:end
Gruß