rockyy
Goto Top

Batch Registry Eintrag lesen und neu schreiben

 @Echo off
cd %temp%
for /f "tokens=2 delims==" %%A in (  
  'ftype ^|findstr /i "^word.document"'  
   ) Do if not defined WordPfad Call :Setpfad wordpfa %%A
Echo WordPfad=%WordPfad%
reg add "pfad" /v schlüssel/d "%wordpfa%" /f  
goto :eof
:SetPfad
set %1=%~2 
goto :eof

Hiermit gehts, danke allen.

Jannik

Content-Key: 141616

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

Printed on: April 24, 2024 at 02:04 o'clock

Mitglied: 77559
77559 Apr 28, 2010 at 08:40:54 (UTC)
Goto Top
Hallo Rockyy,

Bitte formatiere deinen Code unbedingt mit den dafür vorgesehenen

Wenn du den aktuellen Pfad zu Winword ermittelen wilst, kannst du einfach mit ftype abfragen wie die einem dokumenttyp zugeordnete Anwendung gestartet wird.

@Echo off
for /f "tokens=2 delims==" %%A in (  
  'ftype ^|findstr /i "^word.document"'  
   ) Do if not defined WordPfad Call :Setpfad WordPfad %%A
Echo WordPfad=%WordPfad%
goto :eof
:SetPfad
set %1=%~2
goto :eof

Gruß
LotPings
Member: colinardo
colinardo Apr 28, 2010 at 08:56:34 (UTC)
Goto Top
und dann noch mit folgendem ergänzt :
reg add "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\K2BESCH\Default\" /v PfadZuWord /d %WordPfad%  
in der Registry einfügen
Member: Rockyy
Rockyy Apr 28, 2010 at 09:33:09 (UTC)
Goto Top
Hallo,

vielen vielen Dank ersteinmal für Eure Hilfe!

Leider scheitert es bei mir aus für mich unerklärlichen Gründen immernoch, denn wenn ich den ScriptTeil von LotPings mir in eine txt.datei ausgeben lasse funktioniert es so weit.
Und wenn ich den Teil von Softmeister in die CMD kopiere, erstellt er den Registry Eintrag.

Aber wenn ich nun beides zusammen in eine Batch schreibe macht er einfach gar nichts...

@Echo off
for /f "tokens=2 delims==" %%A in (  
  'ftype ^|findstr /i "^word.document"'  
   ) Do if not defined WordPfad Call :Setpfad WordPfad %%A
Echo WordPfad=%WordPfad%
goto :eof
:SetPfad
set %1=%~2 
goto :eof
reg add "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\K2BESCH\Default\" /v PfadZuWord /d %WordPfad%  

Was kann denn da nicht passen?
Mitglied: 77559
77559 Apr 28, 2010 at 09:42:31 (UTC)
Goto Top
Hoppla,

Zeile 10 wird nie ausgeführt.

Setze den Inhalt von Z10 in Z5 und gut ist.

Gruß
LotPings
Member: Rockyy
Rockyy Apr 28, 2010 at 09:59:44 (UTC)
Goto Top
Hey danke LotPings!

Klappt wunderbar, bevor ich wieder versuche nun noch die WordVersion aus der Registry auszulesen frage ich doch lieber gleich:
Gibt es hierzu auch wieder eine einfachere Alternative wie z.b. mit ftype?
Member: Rockyy
Rockyy Apr 28, 2010 at 13:17:41 (UTC)
Goto Top
Also mit
@Echo off

reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer" | find "NO NAME"> %temp%\versionw.txt  

FOR /F "tokens=4*" %%i IN (%temp%\versionw.txt) DO ECHO %%i >> %temp%\wordversion.txt  

bekommt man Word.Application.11 in ein .txt Dokument geschrieben, jetzt müsste ich nur irgendwie das "Word.Application." verstreichen damit da nur noch 11 bzw 9, 10 steht...
Mitglied: 77559
77559 Apr 28, 2010 at 13:50:59 (UTC)
Goto Top
Versuch es mal hiermit:

@Echo off
Set HKEY="HKCU\Software\VB and VBA Program Settings\K2BESCH\Default\"  
FOR /F "skip=2 tokens=3 delims=." %%i IN (  
  'reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"'  
    ) DO Echo reg add "%HKEY%" /v Wordversion /d %%i /f  

Wenn die Ausgabe richtig erscheint das Echo in der letzten Zeile rausnehmen.

Gruß
LotPings