bat批处理命令的特殊字符定义

本文介绍了在使用Bat文件配置环境变量过程中遇到的问题及解决方法。作者在设置含有特殊字符的密码时遇到了困难,通过排查发现是由于Bat文件中特殊字符未正确转义导致。文章详细记录了问题定位及解决过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在用node.js的时候,需要手动去写一个bat文件来配置环境变量。在设置环境变量中的某一个密码时,却发现base64之后的encode和正确的不一致。

先是试验了一下直接将密码在js登录文件中明文指定,发现可以登录。然后再去打日志,发现是从读取bat文件开始就出了问题。所以问题定位到bat文件上。

开始怀疑是字符编码的问题,于是就试图将bat文件编码从UTF8改为ANSI,但是即使如此仍然无效。

在即将准备放弃的时候,突然想起来去检查一下bat中特殊字符的问题。原来总是在中文字符和英文字符的转换里面绕,却忘记了特殊字符转义的可能性。

果然,发现了这么一段话:

^
\\取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
在set/a中是按位异;
在findstr/r的[]中表示不匹配指定的字符集。

因为自己的密码中大量出现了“^”,因此将所有的“^”改为“^^”,结果成功。

其实这没有任何技术含量,完全是思维严密性的考虑。首先是不同语种的转换,其次是文件本身定义的特殊字符。其实最后还有不同命令下的特殊字符,比如正则等等。这才应该是最标准的解决思路。

转载于:https://www.cnblogs.com/garygeng/p/6946510.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值