eccos01
Goto Top

Problem Zeichensatz mit REG QUERY und Startmenü

Hallo zusammen!

Dank der vielen Anleitungen hier, habe ich herausgefunden wie ich den Pfad für den Ordner Startmenü (AllUsers) auslesen könnte.
Ich dachte mit folgender Anweisung käme ich ans Ziel (aus einer Batch-Datei aufgerufen):
for /f "tokens=2* delims= " %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\"^|findstr /i /c:"Common Startup"') do set "Startup=%%j"

Allerdings habe ich dabei ein Problem...
Das Ergebnis von echo "%Startup%" ist:
C:\Dokumente und Einstellungen\All Users\Startmen³\Programme\Autostart

Leider kann ich mit "Startmen³" nichts anfangen.


Führe ich ["REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"] aus,

erhalte ich als Output: (Output wurde um nicht relevante Zeilen gekürzt)
Common Startup REG_SZ C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart

Sobald ich aber die Kommandos for oder findstr benutze, wird aus "Startmenü" wieder "Startmen³".

Ich brauche die Pfade in den Variablen weil ich in einer Batch-Datei mit diversen System-Pfaden arbeiten muss. Die Batch-Datei läuft auf diversen Windows-Versionen und mit diversen Betriebssystem-Sprachen.

Content-ID: 129678

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

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

bastla
bastla 18.11.2009 um 14:49:55 Uhr
Goto Top
Hallo eccos01 und willkommen im Forum!

Ein Wechsel der Codepage auf 1252 sollte das Umlautproblem lösen:
chcp 1252>nul
Soferne Du danach wieder auf die ursprüngliche CP (zB 850) zurückwechseln willst, etwa so:
for /f "tokens=3 delims=:. " %%i in ('chcp') do set "CP=%%i"  
chcp 1252>nul
...
...
chcp %CP%>nul
Grüße
bastla
Iwan
Iwan 18.11.2009 um 14:55:54 Uhr
Goto Top
hallo,

warum so umständlich über die Registry?
die Systemvariable %ALLUSERSPROFILE% sollte doch auf allen Windows-Versionen existieren, oder?
mit Startm~1 solltest du auch immer im Startmenü landen (6 Zeichen des Ordnernamens + ~1)
für den Autostart wäre das also:
"%ALLUSERSPROFILE%\Startm~1\Progra~1\Autost~1"

(getestet unter XP Prof. SP3)
bastla
bastla 18.11.2009 um 15:06:01 Uhr
Goto Top
... wobei dann auch
for /f "delims=" %%i in ('dir /s /b "%allusersprofile%\Autostart"') do set "Startup=%%i"
funktionieren müsste.

Grüße
bastla
Iwan
Iwan 18.11.2009 um 15:37:35 Uhr
Goto Top
eins der B's hat wieder zugeschlagen face-wink
zumindest im CMD-Prompt funktioniert es bei mir
eccos01
eccos01 18.11.2009 um 16:10:06 Uhr
Goto Top
iwan ... also auf Win2k8 funktioniert es nicht... und ich fürchte auf englischen Versionen auch nicht.
eccos01
eccos01 18.11.2009 um 16:11:43 Uhr
Goto Top
bastla ... funktioniert auf Win2k8 auch nicht... selbst auf deutscher Version
Iwan
Iwan 18.11.2009 um 16:15:06 Uhr
Goto Top
schade, das diese Info nicht schon oben stand
im englischen heisst es natürlich "Startup" und nicht "Autostart":
for /f "delims=" %%i in ('dir /s /b "%allusersprofile%\Autostart"') do set "Startup=%%i"  
for /f "delims=" %%i in ('dir /s /b "%allusersprofile%\Startup"') do set "Startup=%%i"  
entweder findet er das eine oder das andere

getestet unter XP Prof. SP3 deutsch & englisch
Iwan
Iwan 18.11.2009 um 16:16:08 Uhr
Goto Top
guck doch mal im CMD-Prompt, ob es die Systemvariable für AllUsers überhaupt gibt
bastla
bastla 18.11.2009 um 17:57:24 Uhr
Goto Top
Hallo eccos01!

Ich hatte ja nicht ohne Grund "... wobei dann auch ... funktionieren müsste" geschrieben. face-wink

Zumindest solltest Du aber unter W2k8 kein Umlautproblem haben ...

Grüße
bastla
DerWoWusste
DerWoWusste 18.11.2009 um 19:25:39 Uhr
Goto Top
Der Pfad bei englischen Systemen (vor 2008/Vista) und ebenso bei allen System ab 2008/Vista lautet %allusersprofile%\Start Menu\Programs\Startup