【发布时间】:2023-04-05 04:36:01
【问题描述】:
创建一个包含以下内容的批处理文件:
@echo off
setlocal
echo %1
if [%1] == [] echo hi
然后像这样从命令提示符运行它:
script.cmd ==
它将输出以下内容:
ECHO is off.
hi
为什么会这样,它是如何发生的?另外,如何更可靠地检查批处理脚本中的空字符串?
谢谢。
【问题讨论】:
-
核心问题是
=符号构成了一个记号分隔符,也像空格、tab、,和;,所以脚本的行为就像没有给出参数一样;将其放在""之间会取消它们的特殊含义并按字面意思保留它们;使用%~1访问参数会删除引号...
标签: windows batch-file cmd windows-10 command-prompt