Board logo

标题: dos6.22下,批处理call调用标签显示出错 [打印本页]

作者: czzexx     时间: 2024-12-6 22:04    标题: dos6.22下,批处理call调用标签显示出错

dos6.22系统,批处理call命令调用标签显示出错(Bad command or file name),确认命令和标签没打错,标签也已定义,这是什么原因?
请前辈高手指教,谢谢。
作者: fpipe     时间: 2025-1-16 08:25
注意调用时必须在标签名前加冒号,而goto是直接跟标签名
作者: qzwqzw     时间: 2025-3-7 23:50


  Quote:
Originally posted by czzexx at 2024-12-6 22:04:
dos6.22系统,批处理call命令调用标签显示出错(Bad command or file name),确认命令和标签没打错,标签也已定义,这是什么原因?
请前辈高手指教,谢谢。

首先,在这个年代还能见到纯DOS的应用需求,难得难得

其次,可以确认的是MS-DOS6.22是不支持Windows NT系列的CMD的命令行扩展特性的

再次,call命令调用标签正是命令行扩展特性之一,具体可以参考CMD下call /?输出

  Quote:
从批处理程序调用另一个批处理程序。

CALL [drive:][path]filename [batch-parameters]

  batch-parameters   指定批处理程序所需的命令行信息。

如果命令扩展被启用,CALL 会如下改变:

CALL 命令现在将卷标当作 CALL 的目标接受。
语法是:

    CALL:label arguments


最后,在纯DOS下实现类似标签调用的目的并不难,类似下面的代码(未经测试)
@echo off
if "%1"==":" goto %2
echo.call调用标签开始
call %0 : lable
echo.call调用标签结束
goto end

:lable
echo.
echo call标签测试代码
echo.
goto end

:end