Windows Batch - Textzeile auslesen (mal wieder)
Guten Abend,
nun isses soweit. Bisher bin ich super zurecht gekommen mit meinen Batch
Scripts unter Windows.
Auch wenn ich hier im Forum immer mal wieder spicken musste
Dafür allen vielen Dank.
Aber heute komm ich so garnicht mehr klar und muss fragen:
Dieser einfache Script soll nix anderes machen wie eben die
installierten Drucker bzw. Ausgabegeräte anzeigen (nebst der
Leichen die sich ggf. darin befinden):
schnipp --------------------------------------------------------------------------
@echo off
cd /d C:\windows\system32
cd printing_admin_scripts\de-de
cscript prnmngr.vbs -l
:pause
echo Bitte Druckername eingeben
set /p Drucker=
cscript prnmngr.vbs -d -p %Drucker% -s RECHNER1
pause
schnapp --------------------------------------------------------
Soweit so gut funktioniert ja auch alles.
Ich hätte allerdings gerne nur die Zeilen z.B.:
Druckername Canon iP4900 series
in der Consolenausgabe gehabt. Denn eben nur diese Zeile
ist ja für das Löschen (insbes. der Druckerleichen) wichtig
wenn ich sie mit "prnmngr.vbs -d -p" löschen will.
Und jetzt kommen wir zu dem Punkt der mir (und offensichtlich nicht nur mir)
ziemlich Probleme macht.
Die Sache mit dem "for" und den "tokens".
Ich glaub' ich werd diesen Befehl mein Leben nicht richtig kapieren.
Und bevor ich mir den Wolf experimentiere, frag ich eben mal hier an,
ob mir dabei jemand behilflich sein kann.
Mit Adventsgruß
Werner
nun isses soweit. Bisher bin ich super zurecht gekommen mit meinen Batch
Scripts unter Windows.
Auch wenn ich hier im Forum immer mal wieder spicken musste
Dafür allen vielen Dank.
Aber heute komm ich so garnicht mehr klar und muss fragen:
Dieser einfache Script soll nix anderes machen wie eben die
installierten Drucker bzw. Ausgabegeräte anzeigen (nebst der
Leichen die sich ggf. darin befinden):
schnipp --------------------------------------------------------------------------
@echo off
cd /d C:\windows\system32
cd printing_admin_scripts\de-de
cscript prnmngr.vbs -l
:pause
echo Bitte Druckername eingeben
set /p Drucker=
cscript prnmngr.vbs -d -p %Drucker% -s RECHNER1
pause
schnapp --------------------------------------------------------
Soweit so gut funktioniert ja auch alles.
Ich hätte allerdings gerne nur die Zeilen z.B.:
Druckername Canon iP4900 series
in der Consolenausgabe gehabt. Denn eben nur diese Zeile
ist ja für das Löschen (insbes. der Druckerleichen) wichtig
wenn ich sie mit "prnmngr.vbs -d -p" löschen will.
Und jetzt kommen wir zu dem Punkt der mir (und offensichtlich nicht nur mir)
ziemlich Probleme macht.
Die Sache mit dem "for" und den "tokens".
Ich glaub' ich werd diesen Befehl mein Leben nicht richtig kapieren.
Und bevor ich mir den Wolf experimentiere, frag ich eben mal hier an,
ob mir dabei jemand behilflich sein kann.
Mit Adventsgruß
Werner
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 256320
Url: https://administrator.de/forum/windows-batch-textzeile-auslesen-mal-wieder-256320.html
Ausgedruckt am: 15.05.2025 um 00:05 Uhr
4 Kommentare
Neuester Kommentar

Moin,
Ich weis zwar grad nicht wie die Ausgabe von prnmngr.vbs aussieht, wenn du aber die ganze Zeile brauchst in der der gesuchte Drucker steht:
Gruß jodel32
Ich weis zwar grad nicht wie die Ausgabe von prnmngr.vbs aussieht, wenn du aber die ganze Zeile brauchst in der der gesuchte Drucker steht:
for /f "delims=" %%a in ('cscript //NOLOGO prnmngr.vbs ^| findstr /i /c:"Canon iP4900" 2^>nul') DO @(
cscript //NOLOGO prnmngr.vbs -d -p "%%a" -s RECHNER1
)
Hallo Werner, willkommen im Forum.
Anderenfalls kannst du mit einer FOR /F Schleife tatsächlich noch auf das Wesentliche reduzieren.
Grüße
rubberman
Die Sache mit dem "for" und den "tokens".
Ich glaub' ich werd diesen Befehl mein Leben nicht richtig kapieren.
Die Frage ist ob du FOR wirklich brauchst. Wenn dich das "Druckername " zu Beginn nicht stört, dann reichtIch glaub' ich werd diesen Befehl mein Leben nicht richtig kapieren.
cscript prnmngr.vbs -l | findstr /bc:"Druckername"
for /f "tokens=1*" %%i in ('cscript prnmngr.vbs -l ^| findstr /bc:"Druckername"') do echo %%j
rubberman