Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch Druckername aus variable ausfiltern

Frage Entwicklung Batch & Shell

Mitglied: fasi2000

fasi2000 (Level 1) - Jetzt verbinden

11.03.2011 um 14:40 Uhr, 3878 Aufrufe, 4 Kommentare

Hallo zusamen,

habe auf einem Termianlserver mit Hilfe des Befehls "set var=reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" /v Lexmark* alle verbundenen Lexmark Drucker, die in dem genannten Registry-Schlüssel stehen exportiert.

Allerdings steht nun in der Variable nicht nur der Schlüsselname(Druckername) sondern auch der Datentyp und der Wert des Schlüssels. Es interessiert mich allerdings nur der vollständige Druckername mit Hostbezeichung und Sitzungsnummer.

Die Variable sihet folgendermaßen aus:
"
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
Lexmark Universal PS3 (von PC061) in Sitzung 4 REG_SZ winspool,TS027
Lexmark X850e Kopierraum mitte (von W1091304) in Sitzung 3 REG_SZ winspool,TS022
Lexmark X850e Kopierraum vorne (von W1091304) in Sitzung 3 REG_SZ winspool,TS023
Lexmark X850e Kopierraum hinten (von W1091304) in Sitzung 3 REG_SZ winspool,TS021
Lexmark C782 9901.01.039 (von W1091304) in Sitzung 3 REG_SZ winspool,TS020
Lexmark T650 9901.01.013 (von W1091304) in Sitzung 3(Terminalserver-PostScript-Fallbackdrucker) REG_SZ winspool,TS016
Lexmark T650 Sekretariat S/W (von W1085125) in Sitzung 2(Terminalserver-PostScript-Fallbackdrucker) REG_SZ winspool,TS005
Lexmark C782 Sekretariat Color (von W1085125) in Sitzung 2 REG_SZ winspool,TS015
Lexmark X850e Sekretariat Kopierer (von W1085125) in Sitzung 2 REG_SZ winspool,TS004
Lexmark T652 Sekretariat S/W (von W1085130) in Sitzung 1(Terminalserver-PostScript-Fallbackdrucker) REG_SZ winspool,TS006
Lexmark C782 Sekretariat Color (von W1085130) in Sitzung 1 REG_SZ winspool,TS003
Lexmark X850e Kopierraum vorne (von W1085130) in Sitzung 1 REG_SZ winspool,TS013
Lexmark X850e Sekretariat Kopierer (von W1085130) in Sitzung 1 REG_SZ winspool,TS001

Suchvorgang abgeschlossen: 13 bereinstimmende Zeichenfolge(n) gefunden.
"

Mit welchem Befehl kann ich nur die Druckernamen untereinander ausgeben?
Mitglied: bastla
11.03.2011 um 15:09 Uhr
Hallo fasi2000 und willkommen im Forum!
Mit welchem Befehl kann ich nur die Druckernamen untereinander ausgeben?
Kommt auf Deine Definition von "Druckernamen" an ... [Edit] Hat sich nach genauerem Lesen erledigt ... [/Edit]

Das könnte dann etwa so gehen:
01.
@echo on & setlocal enabledelayedexpansion 
02.
for /f "delims=" %%i in ('reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" ^| findstr "Lexmark"') do ( 
03.
    set "Drucker=" 
04.
    set "Fertig=" 
05.
    for %%a in (%%i) do if not defined Fertig ( 
06.
        if "%%a"=="REG_SZ" ( 
07.
            set "Fertig=True" 
08.
        ) else ( 
09.
            set "Drucker=!Drucker! %%a" 
10.
11.
12.
    echo !Drucker:~1! 
13.
)
bzw, wenn die Leerzeichen am Anfang nicht stören würden, einfach
01.
@echo off & setlocal 
02.
for /f "delims=	" %%i in ('reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices"^|findstr "HP"') do echo %%i
Als "delimiter" wird hier ein TAB verwendet ...

Grüße
bastla
Bitte warten ..
Mitglied: fasi2000
11.03.2011 um 19:17 Uhr
vielen Dank,

das funktioniert auf Anhieb schon fast wie ich mir das vorstelle.
Das einzige ist, dass hinter jeder Druckerbezeichnung noch ein Leerzeichen steht.


Und nun zum zweiten Schritt:
Anhand dieser Druckerbezeichnung möchte ich an einer anderen Stelle in der Registierung Werte über reg add setzten.

Die vollständingen Schlüssel heißen z.B.:
HKLM\System\CurrentControlSet\Control\Print\Printers\"Druckername"\PrinterDriverData\DuplexCapability REG_Binary 00

Für "Druckername" soll jeweils die Bezeichnung der Drucker stehen.

Wie kann dies gelößt werden?
Bitte warten ..
Mitglied: bastla
11.03.2011 um 20:01 Uhr
Hallo fasi2000!
Das einzige ist, dass hinter jeder Druckerbezeichnung noch ein Leerzeichen steht.
Ist bei mir nicht so - aber wenn's bei Dir bei jedem Drucker so wäre, könntest Du ja
echo !Drucker:~1,-1!
verwenden (und auf jeden Fall darauf achten, dass nach dem zweiten "!" nicht noch ein Leerzeichen in der Batch-Zeile steht).

Da "echo" eingeschaltet ist, solltest Du außerdem erkennen können, woher diese Leerzeichen stammen ...
Wie kann dies gelößt werden?
Wo genau ist das Problem? Der Druckername steht in der Variablen !Drucker! - daher:
reg add "HKLM\System\CurrentControlSet\Control\Print\Printers\!Drucker!\PrinterDriverData" /v DuplexCapability /t REG_Binary /d 00
Grüße
bastla
Bitte warten ..
Mitglied: fasi2000
14.03.2011 um 08:42 Uhr
Vielen Dank für die schnelle Hilfe, es funktioniert alles Bestens.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (17)

Frage von Zockervogel zum Thema Router & Routing ...

Basic
Programmierung von Windows Programmen (8)

Frage von Ghost108 zum Thema Basic ...