批处理 SET /p 在 cmd 中有效,但在 DOSBox 中无效

Batch SET /p works in cmd but not in DOSBox

我有这个批号:

IF [%1]==[] GOTO NoParameter
IF NOT [%1]==[] GOTO Parameter
:NoParameter
SET /p "Name= ASM file name (exclude .ASM): "
TASM    /ZI %Name%
IF ERRORLEVEL 1 GOTO End
TLINK   /v  %Name%
IF ERRORLEVEL 1 GOTO End
TD      %Name%
GOTO    End
:Parameter
TASM    /ZI %1
IF ERRORLEVEL 1 GOTO End
TLINK   /v  %1
IF ERRORLEVEL 1 GOTO End
TD      %1
:End

它在 CMD 中运行良好,但在我真正需要它的 DOSBox 中却不行。脚本不会在 SET /p 处暂停,而是继续执行下一个命令,将 null 作为参数,然后在 TLINK 处停止,因为给定的参数无效。如果我在 运行 来自 DOSBox 的脚本时输入一个参数,脚本将完美运行。知道如何获得这样的用户输入吗?

DOSBox 不支持 set /p 等 XP 命令扩展,开发者 was against it

输入字符串的唯一方法是使用另一个实用程序,例如该论坛上提到的 string25