windows – 批处理脚本解释注释中的内容?
发布时间:2020-12-14 01:35:48 所属栏目:Windows 来源:网络整理
导读:当我运行以下批处理脚本时: @echo offREM %~ will strip surrounding quotes if anyecho HERE 我收到以下错误: C:test.cmdThe following usage of the path operator in batch-parametersubstitution is invalid: %~ will strip surrounding quotes if an
当我运行以下批处理脚本时:
@echo off REM %~ will strip surrounding quotes if any echo HERE 我收到以下错误: C:&;test.cmd The following usage of the path operator in batch-parameter substitution is invalid: %~ will strip surrounding quotes if any For valid formats type CALL /? or FOR /? 如果将REM更改为::,效果相同. 好像解析器忽略了注释指示符并解析了%?.如果我在%和?之间放置一个空格,那么它可以正常工作. Windows 7企业版(尚未检查任何其他版本). 对我来说似乎是一个错误,但我错过了什么? 解决方法
%-expansion,因此扩展正常环境变量(如%VAR%)以及命令行参数(如%0),是读取一行后的第一步,因此甚至在识别rem命令之前就会发生这种情况.因此,您需要避免%?(例如,通过编写rem%?…).
鉴于command extensions已启用,无论如何都是默认值,%?被识别为无效参数语法(?应该跟随一个十进制数字,表示参数位置或有效修饰符,如f,d,p,n,x等;见Command Line arguments (Parameters))并导致致命错误,这意味着抛出错误消息并中止批处理文件处理(尽管未设置 当您尝试执行sub-string substitution但指定空搜索字符串(如%VAR:=替换%或%VAR:* =替换%,假定已定义VAR),同时启用了命令扩展,则会出现相同的效果. 另请参见此主题:How does the Windows Command Interpreter (CMD.EXE) parse scripts? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
热点阅读