我认为我的一些软件受到了英特尔和 AMD 之间差异的影响,但很难判断是硬件问题还是 Windows 设置了某种标志。我的一些在命令行上运行的应用程序在英特尔上运行良好,但在 AMD 上它们报告“/AMD 此时是意外的”。我检查了文件以查看其中是否包含错误字符串,结果发现不是。我尝试查看它可能调用的任何文件,但这些文件中也没有该字符串。因此批处理文件没有抛出错误,我认为这一定是 Windows 添加的内容,但同时它正在扰乱流程。这个标志是什么,我如何阻止 Windows 添加它?(这可能是一个晦涩的问题;我在谷歌上找不到任何答案,因为搜索关键字只会带来关于 AMD 的文章和有该程序名称的人,而不是论坛主题或任何关于它的内容)编辑:
REM echo off setlocal enabledelayedexpansion
REM 有关延迟变量扩展类型的良好解释,请在命令提示符下输入 set /? REM 它仅在命令行帮助中解释,而不是 Windows 帮助
REM -------------- 设置脚本变量 -------------------------
设置 WORLD_PARAMETERS= 设置 SIDE_PARAMETERS= 设置 MUNGE_LOAD=0 设置 MUNGE_SIDE=0 设置 MUNGE_COMMON=0 设置 MUNGE_SHELL=0 设置 MUNGE_MOVIES=0 设置 MUNGE_LOCALIZE=0 设置 MUNGE_SOUND=0 设置 MUNGE_PLATFORM=PC 设置 MUNGE_LANGVERSION=ENGLISH 设置 MUNGE_LANGDIR=ENG 设置 MUNGE_ALL=1 设置 DISPLAY_MESSAGES=1 设置 XBOX_COPY=0
REM -------------- 进程命令行参数-------------------------
:whilescriptparameters 如果 "%1"=="" 转到 endscriptparameters
快速眼动 (REM)笔记 REM 复合条件中的第一个 goto 语句似乎有助于变量 REM 扩展。它是必需的,因此它在运行语句之前不会扩展 REM 条件中的所有变量。不幸的是,我们可以在特殊变量 %0-%9 上使用延迟 REM 扩展运算符“!”
if /i "%1"=="/WORLD" (
REM this goto statement is needed read note above
goto :whileworldparameters
:whileworldparameters
shift
set parameter=%1
if "!parameter!" == "" goto whilescriptparameters
if "!parameter:~0,1!" == "/" goto whilescriptparameters
set WORLD_PARAMETERS=!parameter! !WORLD_PARAMETERS!
set MUNGE_ALL=0
goto whileworldparameters
) else if /i "%1"=="/SIDE" (
REM this goto statement is needed read note above
goto :whilesideparameters
:whilesideparameters
shift
set parameter=%1
if "!parameter!" == "" goto whilescriptparameters
if "!parameter:~0,1!" == "/" goto whilescriptparameters
set SIDE_PARAMETERS=!parameter! !SIDE_PARAMETERS!
set MUNGE_ALL=0
goto whilesideparameters
) else if /i "%1"=="/LOAD" (
set MUNGE_LOAD=1
set MUNGE_ALL=0
) else if /i "%1"=="/NOMESSAGES" (
set DISPLAY_MESSAGES=0
) else if /i "%1"=="/SOUND" (
set MUNGE_SOUND=1
set MUNGE_ALL=0
set MUNGESTREAMS=1
REM this goto statement is needed read note above
goto :whilesoundparameters
:whilesoundparameters
shift
set parameter=%1
if "!parameter!" == "" (
goto whilescriptparameters
) else if /i "!parameter!"=="NOSTREAMS" (
set MUNGESTREAMS=0
) else if "!parameter:~0,1!" == "/" (
goto whilescriptparameters
) else (
set SOUNDLVL=!parameter! !SOUNDLVL!
set MUNGE_ALL=0
)
goto whilesoundparameters
) else if /i "%1"=="/COMMON" (
set MUNGE_COMMON=1
set MUNGE_ALL=0
) else if /i "%1"=="/SHELL" (
set MUNGE_SHELL=1
set MUNGE_ALL=0
) else if /i "%1"=="/MOVIES" (
set MUNGE_MOVIES=1
set MUNGE_ALL=0
) else if /i "%1"=="/LOCALIZE" (
set MUNGE_LOCALIZE=1
set MUNGE_ALL=0
) else if /i "%1"=="/NOXBOXCOPY" (
set XBOX_COPY=0
) else if /i "%1"=="/PLATFORM" (
REM this goto statement is needed read note above
goto :whileplatformparameters
:whileplatformparameters
shift
set parameter=%1
if /i "!parameter!"=="PC" (
set MUNGE_PLATFORM=PC
) else if /i "!parameter!"=="PS2" (
set MUNGE_PLATFORM=PS2
) else if /i "!parameter!"=="XBOX" (
set MUNGE_PLATFORM=XBOX
) else (
echo "
echo "Error (Invalid Platform Parameter): %1
echo "
goto PRINT_USAGE_AND_EXIT
)
shift
goto whilescriptparameters
) else if /i "%1"=="/LANGUAGE" (
REM this goto statement is needed read note above
goto :whilelanguageparameters
:whilelanguageparameters
shift
set parameter=%1
if /i "!parameter!"=="ENGLISH" (
set MUNGE_PLATFORM=ENGLISH
set MUNGE_LANGDIR=ENG
) else if /i "!parameter!"=="UK" (
rem 设置 MUNGE_PLATFORM=UK 设置 MUNGE_LANGDIR=UK_ 设置 MUNGE_LANGVERSION=UK_ ) else if /i "!parameter!"=="FRENCH" ( rem 设置 MUNGE_PLATFORM=FRENCH 设置 MUNGE_LANGDIR=FRENCH 设置 MUNGE_LANGVERSION=FRENCH ) else if /i "!parameter!"=="GERMAN" ( rem 设置 MUNGE_PLATFORM=GERMAN 设置 MUNGE_LANGDIR=GERMAN 设置 MUNGE_LANGVERSION=GERMAN ) else if /i "!parameter!"=="JAPANESE" ( rem 设置 MUNGE_PLATFORM=JAPANESE 设置 MUNGE_LANGDIR=JAPANESE 设置 MUNGE_LANGVERSION=JAPANESE ) else if /i "!parameter!"=="ITALIAN" ( rem 设置 MUNGE_PLATFORM=ITALIAN 设置MUNGE_LANGDIR=ITALIAN 设置 MUNGE_LANGVERSION=ITALIAN ) else if /i "!parameter!"=="SPANISH" ( rem 设置 MUNGE_PLATFORM=SPANISH 设置 MUNGE_LANGDIR=SPANISH 设置 MUNGE_LANGVERSION=SPANISH ) else ( echo " echo "错误(无效语言参数):%1 echo " goto PRINT_USAGE_AND_EXIT )
shift
goto whilescriptparameters
) else (
echo "
echo "Error (Invalid Parameter): %1
echo "
goto PRINT_USAGE_AND_EXIT
)
shift goto whilescriptparameters :endscriptparameters
REM ----------- 后期处理一些变量 ---------------
如果/I“%MUNGE_LANGVERSION%” ==“ENGLISH”(设置MUNGE_OVERRIDE_DIR =)否则(设置MUNGE_OVERRIDE_DIR =%MUNGE_PLATFORM%_%MUNGE_LANGDIR%)
如果/i“%WORLD_PARAMETERS%” ==“(设置WORLD_PARAMETERS = NOTHING)否则(REM查看是否为NOTHING则覆盖(%WORLD_PARAMETERS%)中%% A的变量执行(如果/i“%% A” ==“NOTHING”(设置WORLD_PARAMETERS = NOTHING)))
如果/ i“%SIDE_PARAMETERS%” ==“”(设置SIDE_PARAMETERS = NOTHING)否则(REM查看是否为NOTHING,然后覆盖(%SIDE_PARAMETERS%)中%% A的变量执行(如果/ i“%% A” ==“NOTHING”(设置SIDE_PARAMETERS = NOTHING)))
如果 %MUNGE_ALL% EQU 1(设置 WORLD_PARAMETERS=EVERYTHING 设置 SIDE_PARAMETERS=EVERYTHING 设置 MUNGE_LOAD=1 设置 MUNGE_SIDE=1 设置 MUNGE_COMMON=1 设置 MUNGE_SHELL=1 设置 MUNGE_MOVIES=1 设置 MUNGE_LOCALIZE=1 设置 MUNGE_SOUND=1)
REM -------------- 设置日志 -----------------------
如果存在 %MUNGE_LOG% ( del %MUNGE_LOG% ),则设置 MUNGE_LOG="%CD%\%MUNGE_PLATFORM%_MungeLog.txt"
REM 回显 ************************************************************************* >> %MUNGE_LOG% REM 回显 munge.bat %MUNGE_PLATFORM% %MUNGE_LANGVERSION% >> %MUNGE_LOG% REM 回显 MUNGE_BIN_DIR=%MUNGE_BIN_DIR% >> %MUNGE_LOG% REM 回显 MUNGE_OVERRIDE_DIR=来源%MUNGE_LANGVERSION% >> %MUNGE_LOG% REM echo MUNGE_LANGDIR=来源%MUNGE_LANGDIR% >> %MUNGE_LOG% REM echo ************************************************************************* >> %MUNGE_LOG%
如果“%MUNGE_BIN_DIR%”=="”(设置 MUNGE_BIN_DIR=%CD%.....\ToolsFL\Bin REM echo MUNGE_BIN_DIR=%MUNGE_BIN_DIR% 设置 PATH=%CD%.....\ToolsFL\Bin;%PATH% )
REM -------------- MUNGE 普通 -----------------------
如果 %MUNGE_COMMON% EQU 1 ( 回显 Common\munge %MUNGE_PLATFORM% cd Common 调用 munge.bat %MUNGE_PLATFORM% cd .. )
REM -------------- MUNGE SHELL ----------------------- 如果 %MUNGE_SHELL% EQU 1 ( echo Shell\munge %MUNGE_PLATFORM% cd Shell 调用 munge.bat %MUNGE_PLATFORM% cd .. )
REM -------------- MUNGE LOAD ----------------------- 如果 %MUNGE_LOAD% EQU 1 ( echo Load\munge %MUNGE_PLATFORM% cd Load call munge.bat %MUNGE_PLATFORM% cd .. )
REM -------------- MUNGE SIDES ----------------------- 如果 /i “ %SIDE_PARAMETERS % ” NEQ “ NOTHING ” ( echo Sides\munge %MUNGE_PLATFORM% cd Sides 调用 munge.bat %MUNGE_PLATFORM% %SIDE_PARAMETERS% cd .. )
REM -------------- MUNGE WORLDS ----------------------- 如果 /i“ %WORLD_PARAMETERS %” NEQ“ NOTHING” ( echo Worlds \munge %MUNGE_PLATFORM% cd Worlds 调用 munge.bat %MUNGE_PLATFORM% %WORLD_PARAMETERS% cd .. )
REM -------------- MUNGE SOUNDS ----------------------- 如果 %MUNGE_SOUND% EQU 1 ( echo Sound\munge %MUNGE_PLATFORM% cd Sound call munge.bat %MUNGE_PLATFORM% cd .. )
如果 /I "%MUNGE_PLATFORM%"=="XBOX" ( 如果 %XBOX_COPY% EQU 1 ( echo 将文件复制到 XBOX... echo on xbcp -d -y -t -r -f .._lvl_xbox*.lvl xe:\Battlefront2\Data_lvl_xbox\ 2>>%MUNGE_LOG% xbcp -d -y -t -r -f .._lvl_xbox*.mvs xe:\Battlefront2\Data_lvl_xbox\ 2>>%MUNGE_LOG% xbcp -d -y -t -r -f ..\sound\global\dsstdfx.bin xe:\Battlefront2\Data\ 2>>%MUNGE_LOG% REM echo off ) )
REM 如果 munge 日志中包含任何内容,则查看它 if %DISPLAY_MESSAGES% EQU 1 ( for /f %%i in (%MUNGE_LOG%) do (if %%~zi GTR 0 ( start Notepad.exe %MUNGE_LOG% ) else ( if exist
%MUNGE_LOG% (删除 %MUNGE_LOG%) ) ) )
REM 暂停
转到结束
REM -------------- 打印脚本使用情况并退出 ----------------------- :PRINT_USAGE_AND_EXIT echo "用法:munge [/PLATFORM [PC|PS2|XBOX]] echo " [/LANGUAGE [ENGLISH|UK|FRENCH|GERMAN|JAPANESE|ITALIAN|SPANISH]] echo " [/WORLD [EVERYTHING|NOTHING| ...]] echo " [/SIDE [EVERYTHING|NOTHING| ...]] echo " [/LOAD] [/SOUND] [/COMMON] [/SHELL] [/MOVIES] [/LOCALIZE] echo " echo "选项:echo " 如果未指定参数,则所有内容都将被混合。 echo " /PLATFORM 混合数据的平台 (默认为 PC) echo " /LANGUAGE 用于构建的语言 (默认为 ENGLISH) echo " /WORLD 选择性混合世界数据。如果 echo " 指定了 "EVERYTHING" 或 "NOTHING",则分别混合或不混合所有世界数据 echo " /SIDE 选择性混合侧面数据。如果 echo " 指定了 "EVERYTHING" 或 "NOTHING",则分别混合或不混合所有侧面数据 echo " /LOAD 如果指定,则混合加载屏幕数据 echo " /SOUND 如果指定,则混合声音数据 echo " /COMMON 如果指定,则混合公共数据 echo " /SHELL 如果指定,则混合 shell 数据 echo " /MOVIES 如果指定,则混合电影数据 echo " /LOCALIZE 如果指定,则混合本地化数据 echo " /NOXBOXCOPY 如果指定,则跳过数据复制到 xbox
REM -------------- 退出脚本 ----------------------- :结束
端局部
答案1
该字符串\AMD
来自您的 PATH,而不是您的 CPU。查看您的 PATH 环境变量,我敢打赌您会C:\Program Files (x86)\AMD APP\bin
在其中找到类似的内容。批处理文件无法正确处理 PATH 环境变量中的括号。