|  
 
 
用的下面的方法 
```  set filename=C:\Users\Administrator\Desktop\ccms_install_x86_windows_s1.0.3\conf\test2.xml set oldstr=pylGLZ set newstr=C:\Users\Administrator\Desktop\ccms_install_x86_windows_s1.0.3\upload setlocal enabledelayedexpansion for /f "delims=" %%a in (%filename%) do ( set aa=%%a set aa=!aa:%oldstr%=%newstr%! echo !aa!>>"%filename%.tmp" ) move "%filename%.tmp" "%filename%" pause 
``` 
但是问题是原xml文件里面的! 和 空格全部本忽略了== 应该怎么解决?  建议直接调用VBScript中的Replace函数:  Visual Basic Scripting Edition      Replace 函数 请参阅 Filter 函数 要求 版本 2 返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。   Replace(expression, find, replacewith[, compare[, count[, start]]]) 参数 expression  必选项。字符串表达式包含要替代的子字符串。  Find  必选项。被搜索的子字符串。  Replacewith  必选项。用于替换的子字符串。  Start  可选项。expression 中开始搜索子字符串的位置。如果省略,默认值为 1。在和count 关联时必须用  count  可选项。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。在和 start 关联时必须用。  Compare  可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。  设置 compare 参数可以有以下值:   常数 值 描述  vbBinaryCompare 0 执行二进制比较。  vbTextCompare 1 执行文本比较。    返回值 Replace 返回以下值:   如果 Replace 返回  expression 为零长度 零长度字符串 ("")。  expression 为 Null 错误。  find 为零长度 expression 的副本。  replacewith 为零长度 expression 的副本,其中删除了所有由 find 参数指定的内容。  start > Len(expression) 零长度字符串。  count 为 0 expression 的副本。    说明 Replace 函数的返回值是经过替换(从由 start 指定的位置开始到 expression 字符串的结尾)后的字符串,而不是原始字符串从开始至结尾的副本。   下面的示例利用 Replace 函数返回字符串:   Dim MyString MyString = Replace("XXpXXPXXp", "p", "Y")   '二进制比较从字符串左端开始。返回 "XXYXXPXXY"。 MyString = Replace("XXpXXPXXp", "p", "Y", '文本比较从第三个字符开始。返回 "YXXYXXY"。3,, -1, 1)  要求 版本 2   请参阅 Filter 函数 
bat调用vbs举例: 
@echo off echo set fso = CreateObject("Scripting.FileSystemObject")        >tmp.vbs echo set a = fso.CreateTextFile("yyyymmddhh.txt", True)         >>tmp.vbs echo s=FormatDateTime(DateAdd("h",-1,Now))                      >>tmp.vbs echo a.WriteLine(Mid(s,1,4)+Mid(s,6,2)+Mid(s,9,2)+Mid(s,12,2))  >>tmp.vbs echo a.Close                                                    >>tmp.vbs echo set a=Nothing                                              >>tmp.vbs echo set fso=Nothing                                            >>tmp.vbs call tmp.vbs del tmp.vbs >NUL 2>NUL for /F %%s in (yyyymmddhh.txt) do set YYYYMMDDHH=%%s del yyyymmddhh.txt >NUL 2>NUL echo %YYYYMMDDHH% 
 |