fanostorm
Goto Top

Pfad aus Reg lesen und als Zielort der zu kopierende Datei verwenden

Hallo,

und zwar hab ich schon eiwnenig heurm probiert. Doch Nichts hat wirklich funktioniert.

Ich möchte eine Batchdatei machen, die erst aus der Registrierung den Installationspfad ausliest. (HKLM\SOFTWARE\Name\Name2 -> Install Dir")

Den Ort verwenden um eine Datei dahin zu kopieren. Vielleicht mit vorheriges unbenennen der vorhandenen Datei.


Hab schon folgendes versucht:


FOR /F "tokens=2*" %%A IN ('REG QUERY "HKLM\SOFTWARE\Name\Name2" /v Install Dir') DO SET Ort=%%B  
copy /Y "Ordner\Test.exe" "%Ort%\Data\Bin"  


Danke für eure hilfe!

Content-Key: 117549

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

Printed on: April 18, 2024 at 13:04 o'clock

Mitglied: 77559
77559 Jun 05, 2009 at 10:05:27 (UTC)
Goto Top
Hallo FanoStorm,

woher sollen wir wissen
  • was in deiner Registry steht?
  • Was in der Variable Ort ankommt?

Ich versuchs mal, aber da solltest du inzwischen auch selber drauf kommen.
@Echo off
set "Ort="  
set "Datei=Test.exe"  
FOR /F "tokens=3*" %%A IN ('REG QUERY "HKLM\SOFTWARE\Name\Name2" /v "Install Dir"') DO SET "Ort=%%B"  
if not defined Ort Echo konnte InstallDir nicht lesen & pause & goto :EOF
If exist "%Ort%\Data\Bin\%Datei%" Move /Y "%Ort%\Data\Bin\%Datei%" "%Ort%\Data\Bin\%Datei%.bak"  
copy /Y "Ordner\%Datei%" "%Ort%\Data\Bin\"  

Gruß
LotPings
Edit Anführungszeichen eingefügt
Edit2: Tokens geändert
Member: FanoStorm
FanoStorm Jun 05, 2009 at 12:10:21 (UTC)
Goto Top
Zu deinen zwei Fragen.

1. Bei "Install Dir" steht der Pfad wo das Programm installiert ist.

2. Soll dann entsprechend der Pfad von "Install Dir" ankommen.


Mit "Do SET Ort=%%B" wird doch der ausgelesene Pfad von "Install Dir". Für die Variable "Ort" bestimmt.
Oder seh ich das falsch?


Hab es ausprobiert. Doch funktioniert nicht "Fehler: Zu viele Befehlsparameter"

Bei "Name2" was ich hier als Beispiel verwendet hab. Kommen bei mir zwei Leertasten rein, sprich "Der Name 2". Kann das mit ein Problem sein?


lieben Dank für deine hilfe
Mitglied: 77559
77559 Jun 05, 2009 at 12:31:14 (UTC)
Goto Top
Zitat von @FanoStorm:
Zu deinen zwei Fragen.
1. Bei "Install Dir" steht der Pfad wo das Programm installiert ist.
Das ist ja nett,hätte ich mir beinahe gedacht face-wink
Ein Beispiel wäre trotzdem hilfreich (kommen Sonder-/Leerzeichen vor?)

2. Soll dann entsprechend der Pfad von "Install Dir" ankommen.
Mit "Do SET Ort=%%B" wird doch der ausgelesene Pfad von "Install Dir". Für die Variable "Ort" bestimmt. Oder seh ich das falsch?
Grundsätzlich schon,
Hab es ausprobiert. Doch funktioniert nicht "Fehler: Zu viele Befehlsparameter"
Deshalb will ichdoch wissen welche Daten konkret benutzt werden.

Bei "Name2" was ich hier als Beispiel verwendet hab. Kommen bei mir zwei Leertasten rein, sprich "Der Name 2". Kann das mit ein Problem sein?
Ich setze mal Anführugszeichen in s obige Beispiel, probiere es dann noch mal.

Gruß
LotPings

Edit Registry Schlüssel mit Leerzeichen selber einzuführen ist eine schlechte Idee, Die müssen auch in Anführungszeichen bei der Abfrage
Member: FanoStorm
FanoStorm Jun 05, 2009 at 13:10:40 (UTC)
Goto Top
Hab es ausprobiert. Funktioniert immer noch nicht. Hier mal die konkreten Daten.

Registrierung:

"HKLM\SOFTWARE\Sims\The Sims 3" -> "Install Dir" Beispielpfad="C:\Programme\Electronic Arts\Die Sims 3"

Test.exe = Changer.exe
Mitglied: 77559
77559 Jun 05, 2009 at 13:43:53 (UTC)
Goto Top
Zitat von @FanoStorm:
Hab es ausprobiert. Funktioniert immer noch nicht. Hier mal die konkreten Daten.

War doch nicht so schwer, oder?

Registrierung:
"HKLM\SOFTWARE\Sims\The Sims 3" -> "Install Dir" Beispielpfad="C:\Programme\Electronic Arts\Die Sims 3"

Die Ausgabezeile enthält doch wieder das Leerzeichen du musst dann natürlich die tokens um eins erhöhen.
Habs oben nochmal angepasst und natürlich muss die /v Angabe auch in Anführungszeichen.

Test.exe = Changer.exe
Der Dateiname steht doch in einer Variable, den kannst du selber ändern.

Gruß
LotPings
Member: FanoStorm
FanoStorm Jun 05, 2009 at 13:58:54 (UTC)
Goto Top
Ja das mit der EXE Datei hab ich nur Vollständigkeits halber mit erwähnt.

Funktioniert nun einwandfrei! Entschuldigung für die Umstände, dachte das es so vielleicht "einfacher" ist.

Nun ja.....Ich danke dir für deine tolle hilfe!

Grüße