[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 applba 于 2011-5-16 03:09 编辑

set命令在执行初期会处理引号、等号。
第一个等号作为变量名和值的分隔符!
任何字符都可以作为变量名,除了等号。

变量引用增强时,(字符串替换时)依然把第一个=看作分隔符。

解决方法如下,你的var完全是多余的:
  1. @echo off
  2. set a=test=test
  3. echo %a:test==%
  4. pause
复制代码
变量引用增强时,(字符串替换时)依然把第一个=看作分隔符。
所以上面的方法自然也是无效的。
但是字符串的截取是不涉及=号分隔符的。
  1. @echo off
  2. SETLOCAL enabledelayedexpansion
  3. set "a=test=test"
  4. echo %a%
  5. echo !a:test^==-4!
  6. pause
复制代码
以上代码复合题意……

TOP

set语句进行等号的替换绝对会出错,你要回避set这一用用法!

TOP

返回列表