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, 3503 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
Windows 10

Weiße Fenster beim Aufruf verschiedener Apps

Frage von 90584Windows 1011 Kommentare

Hallo liebe Leute ! Ich habe ein Problem. Bei verschiedensten Anwendungen, wie z.B. beim Anhang, sind nur unlesbare weiße ...

Batch & Shell

Powershell: Registry Sichern und wiederherstellen (ohne reg.exe oder regedit.exe)

gelöst Frage von tralvellerBatch & Shell6 Kommentare

Hallo zusammen, ich versuche momentan bestimmte Registry-Schlüssel und Werte zu sichern, kann aber nicht auf reg.exe oder regedit.exe zurückgreifen. ...

HTML

Mit iframe website aufrufen

Frage von deinernstjetztHTML3 Kommentare

Hallo, ich möchte mit einem <iframe> google aufrufen. Das Problem dabei ist, das ich, um Google anzuzeigen, die home ...

CMS

Kann Joomla-Seite nur mit www.xyz.or.at aufrufen

gelöst Frage von UserExpiredCMS1 Kommentar

Hallo, ich stehe vor folgendem Rätsel: Nach weitgehend reibungslosem Umzug unserer Joomla-Homepage zu einem anderen Provider, kann diese im ...

Neue Wissensbeiträge
Windows Server
Erneutes Release von WS2019 und Win10 v1809
Tipp von IT-Pro vor 11 StundenWindows Server3 Kommentare

Hi, nachdem der Windows Server 2019 und Windows 10 in der Version 1809 aufgrund von verschwinden von Dateien nach ...

CPU, RAM, Mainboards
Spectre Update Tool für ältere PCs
Information von sabines vor 14 StundenCPU, RAM, Mainboards6 Kommentare

Mit Hilfe eines Tools wird der betreffende PC permanent von einem USB Stick gestartet, der ein passendes Microcode Update ...

Windows 10
Windows 10 Oktober 2018 Update: Es ist wieder da
Tipp von Bowsette vor 22 StundenWindows 101 Kommentar

Ein neuer Versuch von Microsoft das Windows 10 Oktober 2018 Update, auch bekannt als 1809, an den Mann zu ...

Windows Server

Windows Server 2016: Achtung - ab heute gibt es wieder Express Updates

Information von kgborn vor 1 TagWindows Server1 Kommentar

Kurze Info für Administratoren, die Windows Server 2016 per WSUS/SCCM mit Updates betanken. Ab heute gibt es für Windows ...

Heiß diskutierte Inhalte
Windows Server
Windows Server 2016 Lizenzierung - 7 Hyper V VMs
Frage von staybbWindows Server18 Kommentare

Hallo zusammen, wir haben zwei HP Server gekauft mit jeweils pro Server 2 CPUs à 10 Cores. Also insgesamt ...

Batch & Shell
Ordnernamen mit String aus Ziffern-Zahlenkombination erstellen
Frage von MmarKussBatch & Shell16 Kommentare

Hallo zusammen, ich habe ein etwas komplexeres Problem, welches ich selbst mittels einer Batch-Datei lösen will / muss, da ...

Windows Server
Lohnt sich eine Domäne für uns?
Frage von BowsetteWindows Server12 Kommentare

Hallo, ich arbeite in einem kleinen Unternehmen mit mehr als 5 und weniger als 10 Mitarbeitern, also Small Business ...

Windows Server
AD Password Reminder Mail
Frage von TeutoneWindows Server10 Kommentare

Hallo liebe Leute, ich habe vor langer Zeit einmal ein Password Reminder Mail Script erstellt, welches nun nicht mehr ...