设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

windows – 如何在行继续之后正确转义引用的命令?

发布时间:2021-01-25 06:24 所属栏目:52 来源:网络整理
导读:运行以下示例批处理文件, echo foo ^"C:\Program Files\Internet Explorer\iexplore.exe" …产生以下输出: 06001 我错过了什么? 编辑 标记为,这个问题是处理Windows(XP)批处理文件. 解决方法 对不起,但几乎所有的答案都是错的,或者不明白会发生什么. 该问

运行以下示例批处理文件,

echo foo &&^
"C:\Program Files\Internet Explorer\iexplore.exe"

…产生以下输出:

06001

我错过了什么?

编辑

标记为,这个问题是处理Windows(XP)批处理文件.

解决方法

对不起,但几乎所有的答案都是错的,或者不明白会发生什么.

该问题与cmd-line无关,或者是否在批处理文件中.

插入符号多行字符的规则:
在行尾的插入符号,追加下一行并转义附加行的第一个字符!
这就是你得到的原因

echo foo ^
&& echo bar
---- OUTPUT ---
foo &
bar
---------------

rem equivalent to
echo foo ^&& echo bar
rem So the first ampersand is escaped and the second works as a single &

这也是原始代码无法工作的原因

echo foo &&^
"C:\Program Files\Internet Explorer\iexplore.exe"

rem is equivalent to this,so the quote will be escaped
echo foo &&^"C:\Program Files\Internet Explorer\iexplore.exe"

为什么其他解决方案有效?

echo foo &&^
cmd /c "C:\Program Files\Internet Explorer\iexplore.exe"

rem is equivalent to
echo foo &&^cmd /c "C:\Program Files\Internet Explorer\iexplore.exe"

如果你正在逃避“c”与否“对于”cmd“并不重要.

有一种方法可以使第二行无需修改即可运行.

echo foo && >con ^
"C:\Program Files\Internet Explorer\iexplore.exe"

这是一个特殊情况的特殊情况,插入符号作为普通多行,但不会转义第一个字符. (我想,cmd.exe没有编程,它来自混乱).

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读