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:
Danke für eure hilfe!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 117549
Url: https://administrator.de/contentid/117549
Ausgedruckt am: 26.11.2024 um 09:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo FanoStorm,
woher sollen wir wissen
Ich versuchs mal, aber da solltest du inzwischen auch selber drauf kommen.
Gruß
LotPings
Edit Anführungszeichen eingefügt
Edit2: Tokens geändert
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
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 Zu deinen zwei Fragen.
1. Bei "Install Dir" steht der Pfad wo das Programm installiert ist.
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,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"
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
Zitat von @FanoStorm:
Hab es ausprobiert. Funktioniert immer noch nicht. Hier mal die konkreten Daten.
War doch nicht so schwer, oder?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"
"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