加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

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

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

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

echo foo &&^
"C:Program FilesInternet Exploreriexplore.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 FilesInternet Exploreriexplore.exe"

rem is equivalent to this,so the quote will be escaped
echo foo &&^"C:Program FilesInternet Exploreriexplore.exe"

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

echo foo &&^
cmd /c "C:Program FilesInternet Exploreriexplore.exe"

rem is equivalent to
echo foo &&^cmd /c "C:Program FilesInternet Exploreriexplore.exe"

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

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

echo foo && >con ^
"C:Program FilesInternet Exploreriexplore.exe"

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

(编辑:新余站长网)

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

    热点阅读