加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – %?在REM语句中

发布时间:2020-12-13 22:35:18 所属栏目:Windows 来源:网络整理
导读:我注意到在 windows批处理文件中,即使你退出%?你也会得到错误 For valid formats type CALL /? or FOR /?The syntax of the command is incorrect. 为什么注释行不被忽略? @ ECHO OFFREM Blah blah blahREM %~ this will cause an errorREM %%~ Double the
我注意到在 windows批处理文件中,即使你退出%?你也会得到错误

For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.

为什么注释行不被忽略?

@ ECHO OFF
REM Blah blah blah
REM %~ this will cause an error
REM %%~ Double the fun,no error

解决方法

REM是像ECHO这样的命令.在命令提示符窗口中运行rem /?获得有关此命令的帮助.

Windows命令解释器首先像批处理文件中的所有其他行一样解析此命令行,但以冒号开头的行除外,这些行被解释为标签行而不是命令行.

因此,在执行REM之前,单个%被解释为环境变量或批处理文件参数引用的开头.删除单个百分号,因为此命令行上没有更多百分号.

%?在命令行解析时被解释为无效的批处理文件参数引用. REM命令不评估该行的其余部分对于Windows命令解释器无关紧要.首先,命令行独立于命令解析,然后命令由cmd.exe执行,无论命令是什么.

删除第一行@ ECHO OFF,可以看到每个命令行在被Windows命令解释器解析后如何执行.以冒号开头的行不会被输出为解释为标签行而不是命令行.

有关批处理脚本解析的详细信息,请参阅How does the Windows Command Interpreter (CMD.EXE) parse scripts?

例:

REM User name: %USERNAME%
REM User profile directory: %USERPROFILE%
REM Application data directory: %APPDATA%
REM Batch arguments: %0 %*
PAUSE

这些REM命令行中的环境变量引用和批处理文件参数引用将替换为运行此批处理文件时环境变量和批处理文件参数的值,而顶部不带@ECHO OFF.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读