janskij
Goto Top

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

Content-Key: 391903

Url: https://administrator.de/contentid/391903

Printed on: April 18, 2024 at 13:04 o'clock

Member: ashnod
Solution ashnod Nov 07, 2018 at 09:07:52 (UTC)
Goto Top
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
Mitglied: 137443
137443 Nov 07, 2018 updated at 09:48:45 (UTC)
Goto Top
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
)
Wenn man den reinen Druckernamen haben möchte und einzeln auf unterschiedliche Drucker prüfen möchte:
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
)
Gruß l.

p.s. würde an deiner Stelle gleich auf Powershell umsteigen.
Member: JanSKIJ
JanSKIJ Nov 07, 2018 at 10:26:25 (UTC)
Goto Top
Vielen Dank
funktioniert super