CMD: programfiles Klammer wird nicht angezeigt
Hallo Leute
bei Windows 7 wird die letzte Klammer nicht angezeigt und somit ist der Pfad nicht zu nutzen.
Muss man diese Variable besonders behandeln?
IF %PROCESSOR_ARCHITECTURE%==x86 (
set programpath=%programfiles%
) ELSE (
set programpath=%programfiles(x86)%
)
echo %programpath% :: c:\program files (x86
Danke & Gruss
bei Windows 7 wird die letzte Klammer nicht angezeigt und somit ist der Pfad nicht zu nutzen.
Muss man diese Variable besonders behandeln?
IF %PROCESSOR_ARCHITECTURE%==x86 (
set programpath=%programfiles%
) ELSE (
set programpath=%programfiles(x86)%
)
echo %programpath% :: c:\program files (x86
Danke & Gruss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 233831
Url: https://administrator.de/contentid/233831
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
6 Kommentare
Neuester Kommentar
Zur Info: Anhand der Prozessorarchitektur-Variable kannst du nicht auf das verwendete Betriebssystem (32/64Bit) schließen !!
das machst du besser so:
Grüße Uwe
das machst du besser so:
for /f "tokens=2 delims==" %%a in ('wmic os get OSArchitecture /format:list ^| findstr /i "OSArchitecture"') DO set arch=%%a
if "%arch%" == "64-bit" (
set "programpath=%programfiles(x86)%"
) else (
set "programpath=%programfiles%"
)
Grüße Uwe
Hallo @teslajr,
wie @jsysde bereits schrieb: Mach Anführungsstriche drum herum.
Dass die Klammer im ECHO nicht mehr rauskommt liegt daran, dass
Deshalb sollten Zeile 2 und 4 so aussehen:
Gruß,
@Snowman25
€dit: Insgesamt wäre aber eine Abfrage besser, die testet, ob die x86-Pfade gesetzt sind:
wie @jsysde bereits schrieb: Mach Anführungsstriche drum herum.
Dass die Klammer im ECHO nicht mehr rauskommt liegt daran, dass
%ProgramFiles(x86)
zu C:\Program Files (x86) geparst wird. Die schließende Klammer von x86)
wird dabei aber als die schließende Klammer des ELSE-Blocks interpretiert.Deshalb sollten Zeile 2 und 4 so aussehen:
set programpath="%programfiles%"
set programpath="%programFiles(x86)%"
Gruß,
@Snowman25
€dit: Insgesamt wäre aber eine Abfrage besser, die testet, ob die x86-Pfade gesetzt sind:
REM Wenn %ProgramFiles(x86) leer bzw. ungesetzt ist (32-Bit), wird
REM programpath auf %ProgramFiles% gesetzt. Ansonsten (64-bit) auf
REM %ProgramFiles(x86).
IF "x%ProgramFiles(x86)%"=="x" (
SET programpath="%ProgramFiles%"
) ELSE (
SET programpath="%ProgramFiles(x86)%"
)
Wie der Name schon sagt wird hier der Prozessor-Fähigkeit genannt nicht die Bittnes des Betriebssystems.