Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Eigenen Pfad und Pfadvariablen (%APPDATA% etc) in Registydatei schreiben

Mitglied: Soidberg

Soidberg (Level 1) - Jetzt verbinden

12.03.2007, aktualisiert 18:00 Uhr, 10821 Aufrufe, 8 Kommentare

Hallo liebe Administrator-User,

ich habe nun schon so manch einen Beitrag aus der Suchfunktion gelesen, bin aber nicht wirklich fündig geworden. Sollte ich etwas übersehen haben, bitte ich das zu entschuldigen.

Nun zur Problematik:

Ich bastle mir sehr gerne kleine Tools portable. Dabei werden durch einen Loader (compilierte .bat) alle benötigten Registryeinträge geschrieben, Dateien kopiert und so weiter.

Jetzt kommt es immer mal wieder vor das ein Tool den Pfad zur .exe oder einer .ini haben möchte. Da das Tool ja portable sein soll müssen diese Pfadangaben dem jeweiligen Rechner (Speicherort der Portable) angepasst werden.

Auch wenn das jetzt angeführte Beispiel definitiv nicht geht, verdeutlicht es eventuell was ich durch eine .bat realisieren möchte.

Das bräuchte ich (wenn es gehen würde):

HKLM_SOFTWARE_Beispieltool
Name: Settings Wert: %WINDIR%\Programme\Toolordner\settings.ini

Rauskommen sollte dann eine Registrydatei mit dem Inhalt:

HKLM_SOFTWARE_Beispieltool
Name: Settings Wert: C:\Programme\Toolordner\settings.ini

Da Variable ja in Regfiles nicht funktionieren brauche ich also eine .bat die mir diese Regfiles mit passenden Pfadangaben zusammenbaut und schreibt.

Die .bat sollte alle gängigen (set) Variablen inklusive des aktuellen eigenen Pfades auslesen können und in eigenen Variablen verarbeiten können.

Ich müsste also die Möglichkeit haben in der .bat den Key anzugeben in den der Pfad (per Variable) geschrieben wird.

Frei nach dem Motto:

Schreibe in den Key HKLM_SOFTWARE_Beispieltool den Namen "Settings" mit dem Wert der Variable "%Windir%\Programme\Toolordner\settings.ini" also in unserem Beispiel den Wert: C:\Programme\Toolordner\settings.ini (oder was in dem Fall dann halt die Windowsplatte ist).

Das ganze halt via cmd/.bat

In Hoffnung auf Denkansätze...

Grüße Soidberg
Mitglied: miniversum
12.03.2007 um 14:46 Uhr
01.
@echo off 
02.
set regfile=test.reg 
03.
set "regkey=HKLM_SOFTWARE_Beispieltool" 
04.
set "name=Settings" 
05.
set "value=%Windir%\Programme\Toolordner\settings.ini" 
06.
 
07.
echo Windows Registry Editor Version 5.00>%Regfile% 
08.
echo.>>%Regfile% 
09.
echo [%regkey%]>>%Regfile% 
10.
echo "%name%"="%value%">>%Regfile%
miniversum
Bitte warten ..
Mitglied: Soidberg
12.03.2007 um 15:12 Uhr
Hammer.

Vielen lieben herzlichen Dank an Dich.

*Und ich dachte man versteht eventuell garnicht was genau ich meine :0).

Das ist genau das was ich brauche, ich habe es jetzt noch erweitern (import&löschung der .reg) und jetzt ist es wirklich perfekt...

...bis auf.. nunja, mit welcher Variable schreibe ich den aktuellen Ordnerpfad? Also wenn die .bat im portablesordner "data" liegt, mit welcher >Variable schreibe ich den Ordnerpfad in dem die .bat gerade arbeitet?

Vielen lieben Dank.

Nette Grüße

Soidberg
Bitte warten ..
Mitglied: Soidberg
12.03.2007 um 15:19 Uhr
OK, habe es gerade herausgefunden, das klappt mit %CD%.

Somit ist das Thema erledigt.

Nochmal vielen lieben Dank für die simple aber sehr effektive Hilfe.

Gruß Soidberg
Bitte warten ..
Mitglied: Soidberg
12.03.2007 um 17:00 Uhr
So, es gibt allerdings ein Problem.

In den Registryschlüsseln werden Pfade mit doppel "\\" importiert.

Ich kann zwar alles nach der Variable beeinflussen:

set "value=%WINDIR%\\settings.ini" allerdings wird in der Variable selber (C:\) nur ein "\" angegeben. Deshalb kann der Key nicht importiert werden.

Hat da jemand eventuell noch eine Idee?

Gruß Soidberg
Bitte warten ..
Mitglied: Biber
12.03.2007 um 17:16 Uhr
Moin Soidberg,

sorry, dass ich eben Deinen Thread so vorschnell geschlossen hatte...

Du kannst den String "nachbehandeln", d.h. alle einfachen durch doppelte Backslashes ersetzen.
Demo am CMD-Prompt:
01.
(=17:13:05  D:\temp=) 
02.
>   set "value=%Windir%\Programme\Toolordner\settings.ini" 
03.
(=17:13:11  D:\temp=) 
04.
>set "value=%value:\=\\%" 
05.
(=17:13:24  D:\temp=) 
06.
>set value 
07.
value=C:\\WINDOWS\\Programme\\Toolordner\\settings.ini
Im Batch ohne Änderungen genauso übernehmen.

Gruss
Biber
Bitte warten ..
Mitglied: Soidberg
12.03.2007 um 17:29 Uhr
Moin Soidberg,

sorry, dass ich eben Deinen Thread so
vorschnell geschlossen hatte...

Du kannst den String "nachbehandeln",
d.h. alle einfachen durch doppelte
Backslashes ersetzen.
Demo am CMD-Prompt:
01.
> (=17:13:05  D:\temp=) 
02.
> >   set "value=%Windir%\Programme\Toolordner\settings.ini" 
03.
> (=17:13:11  D:\temp=) 
04.
> >set "value=%value:\=\\%" 
05.
> (=17:13:24  D:\temp=) 
06.
> >set value 
07.
> value=C:\\WINDOWS\\Programme\\Toolordner\\settings.ini 
08.
> 
Im Batch ohne Änderungen genauso
übernehmen.

Gruss
Biber


Vielen lieben Dank, bedauerlicherweise muss ich gestehen das ich da nicht ganz nachkomme.

Könntest du mir den kompletten Code posten, ich verstehe nicht wirklich wie und wo ich es einbauen muss.

Dazu kommt das diese Nachbehandlung auch erstmal nur mit der Variable %WinDIr% geht, mit %APPDATA% habe ich dann das Problem mit \ in der Variable selber. Man müsste also den fertigen .reg File nachbearbeiten oder liege ich da jetzt total falsch?

Auch an Dich ein herzliches Dankeschön.

Gruß Soidberg
Bitte warten ..
Mitglied: Biber
12.03.2007 um 17:41 Uhr
Okay, Soidberg,

nochmal geordneter:

die Wechseln/ersetze-Funktion sieht etwas strange aus beim CMD-Interpreter.
Die hat die Syntax "Set variableX=%variableX:alterStr=neuerString%".
Bedeutet: nimm den Wert der in %-Zeichen eingeschlossenen Variablen , aber ersetze den altenString durch den neuenString.
In Deinem Fall alle einfachen "\" durch doppelte ("\\").

Im Batch:
01.
@echo off & setlocal 
02.
... 
03.
set "value=%Windir%\Programme\Toolordner\settings.ini" 
04.
REM Nach der bei Dir vorhandenen Zeile eine neue Zeile: 
05.
set "value=%value:\=\\%" 
06.
...
That's all.
Biber
Bitte warten ..
Mitglied: Soidberg
12.03.2007 um 18:00 Uhr
Jupp, das ist die passende Lösung und der Grund warum ich mich hier registriert habe. :0)

Promte, professionelle und freundliche Hilfe.

Ihr habt euren Ruf nicht umsonst weg eines der besten Admintratorenforen zu sein.

Für alle User die später eventuell mal ähnliche Fragen haben, hier ist der Code:
01.
@echo off 
02.
 
03.
cd %CD%\data 
04.
set regfile=dynkey.reg 
05.
set "regkey=HKEY_LOCAL_MACHINE\SOFTWARE\Testprogramm" 
06.
set "name=Settings" 
07.
set "value=%APPDATA%\Programme\Toolordner\settings.ini" 
08.
set "value=%value:\=\\%" 
09.
 
10.
echo Windows Registry Editor Version 5.00>%Regfile% 
11.
echo.>>%Regfile% 
12.
echo [%regkey%]>>%Regfile% 
13.
echo "%name%"="%value%">>%Regfile% 
14.
 
15.
regedit /S dynkey.reg 
16.
del dynkey.reg
Klein, fein aber verdammt nochmal hilfreich.

Vielen Lieben Dank, es grüßt Euch

euer Soidberg

EDIT: Jetzt kann das Thema geschlossen werden ;0)
Bitte warten ..
Ähnliche Inhalte
Backup

Verzeichnisse AppData Roaming und AppData Local automatisch sichern

Frage von imebroBackup33 Kommentare

Ich würde gerne die Verzeichnisse "C:\Users\xxxx\AppData\Roaming" und "C:\Users\xxxx\AppData\Local" mit meiner täglichen automatischen Sicherung sichern. Die Sicherung läuft mit dem ...

Batch & Shell

PowerShell - Teile eines Pfads in eine Variabel schreiben

gelöst Frage von ImmerKindBatch & Shell1 Kommentar

Hallo Leute:) Ich habe eine kleine Frage. Ist es möglich einem Pfad (Beispiel: \\Server\c$\Skripte\Powershell\Skrip.ps1) nur das File zu entziehen ...

Windows Netzwerk

Java APPDATA

Frage von katalinbuchWindows Netzwerk1 Kommentar

Hallo zusammen, ich habe ein Prolpem mit "umgeleiteten" Ordner APPDATA. aus Gründen der Geschwindigkeit mustten wir in einer 2012R2 ...

CMS

Appdata in Batch-Datei für Word-Funktionen

gelöst Frage von FuryStageCMS5 Kommentare

Hallo zusammen, ich möchte gerne eine Datei verteilen, sobald der User sich einloggt und die Batch-Datei ausgeführt wird. Es ...

Neue Wissensbeiträge
E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 1 TagE-Mail8 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 1 TagHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 1 TagSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 2 TagenServer-Hardware4 Kommentare

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Heiß diskutierte Inhalte
Sicherheits-Tools
Virenprogramm lässt Programme nicht starten
Frage von SurferGirlSicherheits-Tools23 Kommentare

Hallo, ich bin neu hier, ich hoffe ich habe die richtige Rubrik gewählt. Falls nicht, tut es mir leid. ...

Windows Server
SQL Server Instanz (Eplan) auf WIN 2008 RC2 Server frisst RAM ohne Limit
Frage von derinderinderinWindows Server17 Kommentare

Hallo Zusammen, Wir haben hier einen Windows 2008 RC2 Server. Darauf läuft ein SQL Server Express 2014 Version 12.0.4232.0. ...

Windows 10
Best Practice für Schulungsräume
Frage von Sn0wFoxWindows 1016 Kommentare

Hallo, leider bin ich auch nach langer Suche nicht auf eine zufriedenstellende Nicht-Cloud-Lösung gestoßen und wollte mal Fragen ob ...

Exchange Server
Outlook for Android - Kann nicht eingerichtet werden mit Exchange
Frage von HeuristikerExchange Server11 Kommentare

Servus Leute, momentan bin ich auf der Suche nach einem E-Mail-Client inklusive Kalender für Android mit demselben Look-And-Feel. Wir ...