Batch IF Bedingung
Guten Morgen,
seit mehreren Tagen versuche ich mich nun an meinem Script. Das meiste hab ich mir erfolgreich zusammen gegoogelt und trotzdem stehe ich nun an dem Punkt, an dem ich eure Hilfe benötige.
meine Idee:
Prüfe welcher Standarddrucker gesetzt ist.
Wenn es der physische Drucker ist, gehe zum Ende/Brich ab.
Wenn es der Adobe PDF Drucker ist, fahre fort.
Meine Umsetzung (für fortgeschrittene vermutlich zu umständlich) sieht wie folgt aus:
@echo off
rem Standarddrucker auslesen und in Test.txt schreiben
wmic printer where default='TRUE' get name > Test.txt
echo Datei wurde erstellt
pause
cls
rem Einzeilig umformatieren, damit findstr funktioniert
type Test.txt | findstr "Work" >> Inhalt.txt
rem Bedingung
if "findstr /I "Work" Inhalt.txt" =="WorkCentre6655i" goto Nein
(else) goto Ja
:Ja
:Nein
Bis zur IF Anweisung funktioniert soweit alles.
Auch wenn der Standarddrucker der WorkCentre ist, führt er die Ja Bedingung aus. Was ist falsch daran, bzw. wie kann ich das anders lösen?
Danke
Jan
seit mehreren Tagen versuche ich mich nun an meinem Script. Das meiste hab ich mir erfolgreich zusammen gegoogelt und trotzdem stehe ich nun an dem Punkt, an dem ich eure Hilfe benötige.
meine Idee:
Prüfe welcher Standarddrucker gesetzt ist.
Wenn es der physische Drucker ist, gehe zum Ende/Brich ab.
Wenn es der Adobe PDF Drucker ist, fahre fort.
Meine Umsetzung (für fortgeschrittene vermutlich zu umständlich) sieht wie folgt aus:
@echo off
rem Standarddrucker auslesen und in Test.txt schreiben
wmic printer where default='TRUE' get name > Test.txt
echo Datei wurde erstellt
pause
cls
rem Einzeilig umformatieren, damit findstr funktioniert
type Test.txt | findstr "Work" >> Inhalt.txt
rem Bedingung
if "findstr /I "Work" Inhalt.txt" =="WorkCentre6655i" goto Nein
(else) goto Ja
:Ja
:Nein
Bis zur IF Anweisung funktioniert soweit alles.
Auch wenn der Standarddrucker der WorkCentre ist, führt er die Ja Bedingung aus. Was ist falsch daran, bzw. wie kann ich das anders lösen?
Danke
Jan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 391903
Url: https://administrator.de/forum/batch-if-bedingung-391903.html
Ausgedruckt am: 08.04.2025 um 01:04 Uhr
3 Kommentare
Neuester Kommentar
Moin ....
Schau mal dort ... Mit batch die erste Zeile aus txt Dateien löschen
wenn dein IF passt das batch wie dort beschrieben anpassen ...
VG
Schau mal dort ... Mit batch die erste Zeile aus txt Dateien löschen
wenn dein IF passt das batch wie dort beschrieben anpassen ...
VG

Meine Umsetzung (für fortgeschrittene vermutlich zu umständlich) sieht wie folgt aus:
Das ist in der Tat sehr sehr umständlich gelöst ...Das hier reicht völlig dafür
@echo off
wmic printer where Default=True get Name | findstr /ilc:"WorkCentre6655" >nul 2>&1 && (
echo Tu dies wenn es der Workcenter ist
) || (
echo Tu das wenn es ein anderer ist
)
for /f "tokens=2 delims==" %%a in ('wmic printer where Default^=True /value') do set "defaultprinter=%%a"
echo Standarddrucker: %defaultprinter%
echo %defaultprinter%|findstr /ilc:"WorkCentre6655" >nul 2>&1 && (
echo Workcenter Drucker
)
echo %defaultprinter%|findstr /ilc:"Adobe" >nul 2>&1 && (
echo Adobe Drucker
)
p.s. würde an deiner Stelle gleich auf Powershell umsteigen.