ov3r
Goto Top

Das Eigene-Dateien Verzeichnis per Batch aus der Registry auslesen...?

Moin moin,

ich wollte mir eine Batchdatei schreiben, die ich auf eine mobile Festplatte speichern kann und mit beim "anstecken" der mobilen Festplatte ausgefürt wird (Autostart). Dabei sichert diese Batchdatei die Outlook.pst, archive.pst und jetzt wollte ich noch die Eigenen-Dateien auf die mobile Festplatte Schreiben lassen. Jedoch hat jeder 3. PC die eigenen Dateien nicht im %USERPROFILE% sondern sonst wo. Ich weiß, dass in der Registry im Schlüssel

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
"Personal"="d:\\Dokumente und Einstellungen\\Eigene Dateien"

das "Eigene-Dateinen" Verzeichnis steht. Jedoch weiß ich nicht, wie ich eine Schlüssel in einer Batchdatei auslesen kann. Daher meine Frage kann ich diesen RegSchlüssel in der Batch auslesen?

Batchdatei: (Sind nur die Outlook-Dateien)...
set Quelle1="%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook\archive.pst"  
set Quelle2="%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook\outlook.pst"  
set Quelle3=""  


set Ziel1=".\Backup\%computername%\%date%\Outlook\"  
set Ziel2=".\Backup\%computername%\%date%\Eigene Dateien\"  

echo Starte Komplett-Backup auf %computername% am %date% um %time% von %Quelle1% nach %Ziel1%.

md %Ziel1%
md %Ziel2%

copy %Quelle1% %Ziel1% /v
copy %Quelle2% %Ziel1% /v


würde mich sehr über Hilfe freuen...

mfg Ov3r

Content-ID: 13753

Url: https://administrator.de/contentid/13753

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

11078
11078 29.07.2005 um 11:33:01 Uhr
Goto Top
Hallo


Jedoch weiß ich nicht, wie ich eine Schlüssel in einer Batchdatei auslesen kann. Daher meine Frage kann ich diesen RegSchlüssel in der Batch auslesen?



Gib mal in der Kommandozeile "reg query /?" ein. "reg" ist ein Kommandozeilen-Tool, das bei Windows dabei ist und mit dem man Registry-Werte lesen, schreiben, ändern kann.


Gruß,
TIM
Ov3r
Ov3r 29.07.2005 um 12:10:25 Uhr
Goto Top
... thx für schnelle Antwort und schnelle Hilfe ... :D


ich dachte jetzt an...


REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal


oder? jedoch stören noch die anderen Werte, die Ausgespuckt werden.

bei einer Idee währe ich sehr Verbunden... face-smile

thx im Vorraus...


mfg Ov3r
11078
11078 29.07.2005 um 12:46:12 Uhr
Goto Top
Hallo,

so geht es:

REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal

Also letzten Slash im Key weg und das ganze in Klammern.

Dann bekommst Du so etwas ausgegeben:

! REG.EXE VERSION 2.0

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
    Personal	REG_SZ	J:\

Folgendermaßen bekommst Du nur die interessant Zeile:

REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal  | find "Personal"  


Das ganz wichtige, also den reinen Pfad, kann man auch mit Batch-Hilfe aus dem String herauslösen, allerdings verlassen mich meine Batch-Fertigkeiten hier. Vielleicht kannjemand anders hier übernehmen face-smile ?


Gruß,
TIM
Ov3r
Ov3r 29.07.2005 um 12:58:07 Uhr
Goto Top
... rofl... :D

super.. vielen Dank ich habe glaube ich den rest gefunden.. :D

@echo OFF
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal') DO SET Pfad=%%B
ECHO Pfad=%Pfad%


So... super für die schnelle Hilfe... und vielen Dank nochmal an TIM.. face-smile

mfg OV3r
11078
11078 29.07.2005 um 13:11:20 Uhr
Goto Top
Hallo,

ich hatte auch erst die Idee, das mit "for..." zu machen, allerdings blicke ich da nicht ganz durch und das, was Du gefunden hast, funktioniert in meinen Tests gerade auch nicht. Ich habe mir das folgende zusammengestückelt:

@echo off

REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal  | find "Personal" > %tmp%\test.tmp  

set /p test= < test.tmp

set pfad=%test:~20,7%

echo %pfad%

Was Du anpassen müsstest ist %test:~20,7%. Die Variable %test% beinhaltet ja noch "Personal REG_SZ <em>Pfad</em>". %test:~20,7% bedeutet, dass von der 21. Stelle dieses String bis genau 7 Buchstaben weiter von der Variable genommen wird.


Ich wäre übrigens - falls das jemand mitliest - sehr daran interessiert, dass mal einer die Vorgehensweise mit "for..." und auch das Umgehen mit "tokens" verständlich erklärt face-smile


Gruß,
TIM
Ov3r
Ov3r 29.07.2005 um 13:26:14 Uhr
Goto Top
autorun.inf:
[autorun]
open=backup.bat
icon=%SystemRoot%\System32\shell32.dll,27


backup.bat:
@echo off
FOR /F "tokens=2* delims=	 " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal') DO SET Pfad=%%B  

set Quelle1="%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook\archive.pst"  
set Quelle2="%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook\outlook.pst"  
set Quelle3="%Pfad%"  


set Ziel1=".\Backup\%computername%\%date%\Outlook\"  
set Ziel2=".\Backup\%computername%\%date%\Eigene Dateien\"  

md %Ziel1%
md %Ziel2%

echo Starte Outlook Sicherung auf %computername% am %date% um %time%
echo In das Verzeichnis %Ziel1%.

copy %Quelle1% %Ziel1% /v
copy %Quelle2% %Ziel1% /v

echo.
echo fertig
echo.

echo Starte Eigene Dateien Backup auf %computername% am %date% um %time%
echo In das Verzeichnis %Ziel2%.

xcopy %Quelle3%\*.* %Ziel2% /s /e /c /i /f /y

echo.
echo fertig
echo.



mfg Ov3r

und vielen Dank an TIM...