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, 3856 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Variable setzten mit Leerzeichen (3)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...