找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: kidzgy

[文本处理] 使用sed用正则替换文本时,什么情况下竖线【|】前要加^

[复制链接]
发表于 2024-3-21 19:11:56 | 显示全部楼层
回复 14# GNGW


\是参数解析步骤时的转义符(仅限转义\和") , 不是参数解析的情况下 , \只是个普通字符 , 一般是外部命令才会进行这个步骤 , 内部命令大部分不会进行这个步骤
^是常规转义符 , 代码解析步骤时使用 , 这步骤绝对会进行的
为啥这样 , 建议问微软

因为在英文双引号内(某种意义上这也是一个转义符) , ^是个普通字符  , %%(仅限脚本文件中)跟""是为了在双引号内的^符号失去了转义作用情况下 , 对双引号内的%和"转义的 , 像是亡羊补牢的感觉???  
其他的就不知道了
发表于 2024-3-21 21:09:01 | 显示全部楼层
回复 11# GNGW


    是谁告诉你双引号必须配对,不配对就一定不行的?
只要没有语法错误,能够通过预处理这一关,CMD 就认为是OK的,下一步该干啥干啥。

CMD 比你想像的要聪明得多,如果字符串结尾没有引号字符,它会认为结尾已经存在一个隐含的、且与之配对的引号字符,比如:
echo;a"b|c
与 echo;a"b|c" 一样,| 不需要转义。

如果字符串结尾有一个不配对的引号字符,与 echo;a"b|c 道理一样,只是把 b|c 去掉了。

一个建议:
想学批处理,先学会基本命令、基本语法,练好基本功;
只有掌握了基础,再来钻研这些个 "奇技淫巧",才不会感到吃力。
潘多拉的魔盒,需要有魔力的人才可能打开,CMD的预处理就是"魔盒",没有谁敢说已经彻底打开。

评分

参与人数 1技术 +1 收起 理由
qixiaobin0715 + 1 技术

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 02:47 , Processed in 0.016938 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表