Top-Themen

Aktuelle Themen (A bis Z)

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 Reg.exe von verschieden Pfanden aus aufrufen

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

19.10.2011 um 17:02 Uhr, 3518 Aufrufe, 4 Kommentare

Ich möchte werte aus der Registry auslesen.

Mit der Zeile
FOR /F "skip=2 tokens=1,2*" %%A IN ('reg QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%C
funktiniort es auch wunderbar.

Nur habe ich die reg.exe nicht immer an der selben stellen.

Deswegen habe ich folgenden Zeile.

FOR /F "skip=2 tokens=1,2*" %%A IN ('%reg-path% QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%C

Wenn reg-path z.b. den Wert {C:\temp\reg.exe} hat funktioniert es auch immer super. set "reg-path=C:\temp\reg.exe"

Nicht immer ( in 5% der Falle jedenfalls unter Windows 2000) funktioniert leider reg.exe
also bei set "reg-path=reg.exe" kommt manchmal die Fehlermeldung
Der Befehl reg.exe ist enweder falsch geschrieben oder nicht vorhanden.

Dann also mit fester Pfadangabe. Ist auch keine Problem habe ich mir gedacht.

Wenn jetzt aber der Pfad zur reg Datei ein Leerzeichen hat komm es zur Fehlermeldung

z.b. bei

set "reg-path=:\Dokumente und Einstellungen\Administrator\Desktop\DC-Support\reg.exe"
FOR /F "skip=2 tokens=1,2*" %%A IN ('%reg-path% QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%

Kommt die Fehlermeldung Befehl C:\Dokumente nicht gefunden . Da habe ich mir gedacht auch keine Problem. dann setzt ich halt den Pfad in Hochkomma

FOR /F "skip=2 tokens=1,2*" %%A IN ('"%reg-path%" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%

Aber irgendwie erkennt er die Hochkomma nicht und es kommt die selbe Fehlermeldung. Da habe ich mir dann gedacht naja vielleicht muß ich die " auch negieren.

Aber
FOR /F "skip=2 tokens=1,2*" %%A IN ('""%reg-path%"" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%
Oder
FOR /F "skip=2 tokens=1,2*" %%A IN ('"""%reg-path%""" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%

Bringen auch nicht das gewünschte Ergebnis.

Nur alleien ein "%reg-path%" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory' funktioniert.

Aber in der FOR Schleife funktioniert das ganze irgendwie nicht.

Kann mir da jemand bei dem Syntakt helfen.
Mitglied: bastla
19.10.2011 um 18:25 Uhr
Hallo mycroftone!

Unter der Annahme, dass an das Ende Deiner Test-Zeilen auch noch ein "C" zu denken wäre (ich hoffe, der Hinweis war nicht syntaktlos ), könntest Du mal
FOR /F "skip=2 tokens=1,2*" %%A IN ('call "%reg-path%" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET "_ProfilesDirectory=%%C"
versuchen ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
21.10.2011 um 20:21 Uhr
Moin mycroftone,

ergänzend zu bastlas Hinweis noch die Anmerkung:
Wenn du doch eh schon Variablen verwendest, dann mach doch das Ganze ein büschen lesbarer, indem du statt
Set "reg-path=X:\Pfad zur Exedatei\reg.exe"
FOR /F "skip=2 tokens=1,2*" %%A IN ('call "%reg-path%" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET "_ProfilesDirectory=%%C"
.... lieber 2 Variablen verwendest.
  • Eine für den Pfad in der Registry --> die würde ich %RegPath% nennen
  • Eine für den Pfad und Dateinamen der Reg.exe -> die würde ich %regexe% nennen

Dann sähe es so aus:
Set "regexe=X:\Pfad zur Exedatei\reg.exe"
Set "RegPath=HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" 

FOR /F "skip=2 tokens=1,2*" %%A IN ('call "%regexe%" QUERY "%regPath%" /v ProfilesDirectory') DO SET "_ProfilesDirectory=%%C"
Finde ich (in Anbetracht der Umstände) etwas lesbarer und weniger tippfehleranfällig.

Obwohl - GANZ GAR NIE NICHT würde ich bei mir Variablen wie %_ProfilesDirectory%, also mit Unterstrich beginnende verwenden.
Wenn du Konflikte mit eventuell existierenden Variablen vermeiden willst, dann definiere deine Variablen mit Scope "privat", also setze eine Anweisung "SetLocal" an den Anfang des Bätsches.

Und/oder, wenn du den sprechenden Variablennamen %ProfilesDirectory% gerne beibehalten möchtest, dann nenne deine Variable

Set "myProfilesDirectory=%%C"
Grüße und baldiges Wochenende
Biber

[Edit] Tippfehlerkorrektur. Thx@bastla für den berechtigten Hinweis [/Edit]
Bitte warten ..
Mitglied: bastla
21.10.2011 um 23:25 Uhr
@Biber
%regexe% ist in der entscheidenden Zeile noch etwas unterrepräsentiert ...

Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
03.11.2011 um 10:10 Uhr
Danke Bastel

call %reg-path% funktioniert.

Die komplett funktionierende Zeile schaut wie folgt aus.

FOR /F "skip=2 tokens=1,2*" %%A IN ('call "%reg-path%" QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory') DO SET _ProfilesDirectory=%%C

@Biber
setlocal habe ich am Anfang gesetzt
Den Pfad zur reg.exe ermittele ich dann um ihn später beim auslesen verschieden Registry HIV mit Werten zu verwenden. Deswegen ist eine Variabel für die HIV unpraktikabel.

Aber trozdem danke für alle eure hinweise .
Bitte warten ..
Ähnliche Inhalte
Java
Aufruf der web.xml
gelöst Frage von qwertz1Java3 Kommentare

Hallo, ich habe einen Server, der diverse Java-Servlets hat. Habe nur http-Zugriff auf diesen Server. Die Servlets kann man ...

Server-Hardware
Aufruf Zeichen leuchtet gelb
gelöst Frage von jarimlimServer-Hardware22 Kommentare

Auf einem IBM x3850 System auf der vordere seite leuchtet ein AufrufZeichen gelb. was beduetet das ? Vielen Dank

Webbrowser
Webseiten Aufruf nicht möglich
gelöst Frage von sk7519Webbrowser9 Kommentare

Hallo zusammen, ich habe aktuell ein Phänomen an einem Kundenserver. Der Kunde hat drei Virtuelle Server, installiert ist Server ...

Batch & Shell
Parameter für plink-Aufruf
gelöst Frage von trobonarfBatch & Shell4 Kommentare

Hallo, ich führe via plink ein lokales Skript auf dem Server aus - das klappt soweit. Beispiel: .\plink.exe -ssh ...

Neue Wissensbeiträge
Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 12 StundenWindows 101 Kommentar

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 15 StundenSicherheit5 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Microsoft Office
TEAMS - Skype for business
Tipp von Nebellicht vor 15 StundenMicrosoft Office

Hallo, ms ersetzt Skype for business durch TEAMS. Also, nicht wundern wenn mit der OFFICE365 Umgebung kein Skype for ...

Windows 10

Windows 10: Cortana und die Suche gehen bald wieder eigene Wege

Information von Frank vor 19 StundenWindows 102 Kommentare

Microsoft hat einen neuen Insider Build von Windows 10 veröffentlicht (Fast Ring, Version 18317), wo die digitale Assistentin "Cortana" ...

Heiß diskutierte Inhalte
Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs22 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...

Windows 10
VM wächst schnell von 14 auf 35 GB an - warum?
Frage von degudejungWindows 1018 Kommentare

Hallo, ich bin ein Freund schlanker VMs und setze daher gerne mit dem Erscheinen einer neuen Win10 Version - ...