Zum Inhalt wechseln


Foto

Reg Schlüssel auslesen und in Batch Datei verarbeiten


  • Bitte melde dich an um zu Antworten
8 Antworten in diesem Thema

#1 Millenium

Millenium

    Junior Member

  • 119 Beiträge

 

Geschrieben 18. April 2008 - 14:53

Hallo zusammen,

Hab zur Zeit ein kleines Problem mit Batch Dateien, die ich allein nicht lösen kann. Hoffe Ihr könnt mir helfen.

Ziel:
- Installationspfad einer Software aus der Regitry auslesen.
- Den Installationspfad als Pfad bzw. Variable setzen.
- Kopier- und Sicherungs-Befehle durchführen.

Voraussetzung:
Es muss sowohl unter Win2000 als auch unter Win2003 funktionieren.

Problem:
Mit folgendem Kommando, habe ich es geschafft den Installationspfad auszulesen und als Pfad zu setzen. Leider funktioniert dies nur unter Win2003, weil unter Win2000 die Datei reg.exe nicht standardmäßig existiert. Ich weiss, reg.exe könnte hinzugefügt werden usw. aber es ist wichtig, dass es ohne zusätzliche Arbeit funktioniert und ich die Batch Datei einfach jemanden schicken kann, der es nur noch ausführen muss.

FOR /F "tokens=4 skip=3" %%i IN ('REG QUERY "HKLM\Software\Firma\Produkt" /ve') DO SET Pfad=%%i

Ich hoffe Ihr könnt mir weiterhelfen.

Danke und Gruß
Herra

#2 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 18. April 2008 - 15:13

denke, hier passt das Thema besser rein :)

cu
blub

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#3 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 19. April 2008 - 14:48

Hallo Herra,
Da die reg.exe zum Betriebssystem von 2003 bzw. XP gehört, darfst du diese Datei aus Lizenzgründen auch gar nicht einfach verschicken.

Daher wirst du wohl VBS-Skripten müssen. Etliche Beispiele für die Registry findest du hier: Microsoft Corporation

cu
blub

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#4 Millenium

Millenium

    Junior Member

  • 119 Beiträge

 

Geschrieben 21. April 2008 - 09:08

Hallo blub,

dass ich die reg.exe nicht verschicken kann, ist mir klar.
Gibt es keine andere Möglichkeit per Command Line einen Registry-Schlüssel auszulesen und es dann weiter zu verarbeiten?

Danke und Gruß
Herra

#5 zahni

zahni

    Expert Member

  • 16.497 Beiträge

 

Geschrieben 21. April 2008 - 09:14

Dua kannst das auch relativ einfach mit

http://www.kixtart.org/

machen, oder mit VBScript.

-Zahni

Wen du nicht mit Können beeindrucken kannst, den verwirre mit Schwachsinn!


#6 Millenium

Millenium

    Junior Member

  • 119 Beiträge

 

Geschrieben 21. April 2008 - 16:13

Leider kenne ich mich mit VBScript überhaupt nicht aus.
Werde mal gucken, ob ich es anders lösen kann, oder ob mir ein Bekannter sowas zusammen bastelt.

Danke euch für die Hilfe.

cu Herra

#7 Biber

Biber

    Junior Member

  • 97 Beiträge

 

Geschrieben 29. April 2008 - 22:20

Moin Herra,

ist ja schon einen Moment her, Deine Frage, aber falls Du noch keine ander Lösung hast:

Du kannst über Regedit.exe ausweichen, wenn Du kein Reg.exe vorfindest.
Demo am CMD-Prompt (eingegebene Zeilen beginnen mit ">"):
>reg Query "HKLM\Software\SQLTools 1.4" /ve

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\Software\SQLTools 1.4
    <NO NAME>   REG_SZ  D:\Programme\SQLTools 1.4
>regedit -e .\hier.tmp "HKEY_LOCAL_MACHINE\Software\SQLTools 1.4"

>type hier.tmp
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\SQLTools 1.4]
@="D:\\Programme\\SQLTools 1.4"

>For /f "tokens=2 delims==" %i in ('type hier.tmp^|find "@="') do @echo Set "theInstPath=%i"
Set "theInstPath="D:\\Programme\\SQLTools 1.4""


Also im Prinzip das gleiche Spiel mit einer FOR/F-Anweisung... nur auf eine "echte" Datei bezogen statt auf eine Bildschirmausgabe.

Grüße
Biber

#8 5232joe

5232joe

    Member

  • 345 Beiträge

 

Geschrieben 05. Mai 2008 - 11:36

Hallo!,

Bei mir schauts so aus.

@echo off & setlocal
REM "Ausgabe File in dem der Name des Outlook DefaultProfile steht"
set "OutFile=%userprofile%\Data.txt"
REM "Registry Eintrag wie der DefaultProfile Name von Outlook lautet"
set "R=HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\"
REM "Outlook DefaultProfile Name wird in Data.txt geschrieben"
for /f "tokens=3" %%i in ('reg query "%R%\profiles"^|findstr "REG_SZ"') do echo %%i>"%OutFile%"
ECHO miscprofile=%miscprofile%
REM "Outlook DefaultProfile Name wird übergeben"
for /f "tokens=3" %%i in ('reg query "%R%\profiles"^|findstr "REG_SZ"') do set miscprofile=%%i
set miscprofile=%miscprofile%

REM "Registry Pfad in dem der Schlüssel SyncMode angelegt werden muss, und der Wert auf 1 gestellt wird"
reg add HKEY_CURRENT_USER\Software\update.com\update.seven.groupware\Outlook\%miscprofile%\Settings\Appointments /v SyncMode /t REG_SZ /d 1 /f

reg add HKEY_CURRENT_USER\Software\update.com\update.seven.groupware\Outlook\%miscprofile%\Settings\Contacts /v SyncMode /t REG_SZ /d 1 /f

reg add HKEY_CURRENT_USER\Software\update.com\update.seven.groupware\Outlook\%miscprofile%\Settings\EMails /v SyncMode /t REG_SZ /d 1 /f
Gruss Hannes

#9 Millenium

Millenium

    Junior Member

  • 119 Beiträge

 

Geschrieben 09. Mai 2008 - 07:45

Hi 5232joe,

Sieht zwar gut aus, hilft mir aber leider nicht, da z.B: W2K den Befehl "reg query" nicht kennt.

Hi Biber,

Danke für den Tipp. Würde sogar funktionieren. Habe mich jetzt aber in AutoIt eingearbeitet und den Script damit erstellt.

Danke euch allen für die Tipps.

Gruß Herra