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)...
würde mich sehr über Hilfe freuen...
mfg Ov3r
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 13753
Url: https://administrator.de/contentid/13753
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
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
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
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:
Folgendermaßen bekommst Du nur die interessant Zeile:
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 ?
Gruß,
TIM
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 ?
Gruß,
TIM
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:
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
Gruß,
TIM
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
Gruß,
TIM