PDA

Vollständige Version anzeigen : Registry mittels batch temporär ändern


solas
13.12.2011, 17:24
Ich nutze SolidWorks. dieses Programm legt in der Daten an, die Verschiedene Verzeichnisse definieren.
z.B. Blattformate -> C:\user\...

Da ich für verschiedene Firmen arbeite, möchte ich verschiedene Pfade Definieren, die ich vor dem Programmstart einlesen kann (batch Datei)
Ich bekomme es bereits hin, dass die Batch einen Registry wert einliesst, das Programm startet und nach dem beenden die ursprünglichen Einstellungen wiederherstellt.

Weiss wer, wie ich ein Batch sinnvoll aufbauen muss, welches eine Einstellungsdatei z.B.

Dokumentenvorlage=D:\unternehmen\Firma-soundso\Dokumentenvorlage
Blattformat=D:\unternehmen\Firma-soundso\Blattformat

verarbeiten könnte?
Das Batch müsste dabei die Pfade nur an bestimmte Registrywerte mittels Strichpunkt getrennt anfügen und nach Beendigung wieder entfernen.

Ich könnte dann für jede Firma eine solche einstellungs Datei anlegen und SolidWorks damit starten.
Leider wechseln die Firmen recht häufig und bei der Jongliererei mit den Pfaden habe ich mich schon einige male selbst aus manövriert.

Ich habe mich schon mit For schleifen befasst, aber die Dinger scheinen mir einfach nicht logisch.

benkajaks
22.05.2013, 18:13
Habe das Anliegen, konnte aber auch über Google nichts finden zu diesem Thema.

Irgendwelche Tipps oder Anhaltspunkte?!

Gruß,

Ben

EgonOlsen
16.06.2013, 09:10
Hallo Ben,

ganz begriffen habe ich nicht, was Du schon realisiert hast und was nicht.
Aber hier mal eine Routine zum Einlesen einer Datei:
@echo off
for /F "tokens=1,2 delims==" %%i in (%1) do call :Job_Eintragen %%i %%j
echo Start von SolidWorks
echo Austragen der Regpfade
pause
goto :eof

:Job_Eintragen
echo Ich bearbeite %1
if "%1"== "Dokumentenvorlage" echo Regeintrag %2
if "%1"== "Blattformat" echo Regeintrag %2
goto :eof



Das Ganze kopierst Du in eine Batch, besser noch in eine CMD z.B. Start.cmd
Deine Werte stehen ohne Leerzeichen in Deiner Einstellungsdatei in der Form:
Begriff=Wert

Gestartet wird alles mit: Start.cmd Einstellungsdatei.txt

Im Augenblick werden Deine Werte nur am Bildschirm ausgegeben.
Du müßtest "echo Regeintrag %2" mit dem Kommando ersetzen,
daß den Regeintrag vornimmt, wobei %2 der Pfad ist.


Gruß
Egon