У меня есть пакетный скрипт, я думаю, что моя проблема связана с круглыми скобками, но я не уверен, как обойти это
Вот и все
REM Detect if the OS is x86 or x64
IF DEFINED PROGRAMFILES(x86) (
REM x64
SET "_PROGRAMFILES=%PROGRAMFILES(x86)%"
GOTO MAIN_PROGRAM
) ELSE (
REM x86
SET "_PROGRAMFILES=%PROGRAMFILES%"
GOTO MAIN_PROGRAM
)
:MAIN_PROGRAM
SET "MY_EXE=%_PROGRAMFILES%\MYFOLDER\MYEXE.exe"
IF EXIST "%MY_EXE%" (
ECHO YES
) ELSE (
ECHO NO
)
Запустить это наx86 и все в порядке, поскольку путь для проверки - C: \ Program Files \ MYFOLDER \ MYEXE.exe
Запустите его на x64, и он разразится "не ожидается в это время"
I 'Я вполне уверен, что это связано с путем C: \ Program Files (x86) \
Как я могу обойти (x86), вот в чем проблема
NEW
REM Is the OS x86
IF "%PROCESSOR_ARCHITECTURE%" == "x86" (
SET "_PROGRAMFILES=%PROGRAMFILES%"
SET "_ARCH=x86"
ECHO CPU Architecture is: "%_ARCH%"
ECHO Program Files Directory is: "%_PROGRAMFILES%"
GOTO MAIN_PROGRAM
)
REM Is the OS AMD64
IF "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
SET "_PROGRAMFILES=%PROGRAMFILES(x86)%"
SET "_ARCH=x86"
ECHO CPU Architecture is: "%_ARCH%"
ECHO Program Files Directory is: "%_PROGRAMFILES%"
GOTO MAIN_PROGRAM
)
GOTO ERROR_OS_ARCH
:ERROR_OS_ARCH
CLS
cWnd.exe /SHOW @
ECHO.
ECHO Error 100: Operating System Architecture not Supported. Contact your IT Department
ECHO.
EXIT /B