您现在的位置: 爱51代码网 >> 范文 >> 文章正文
xml文件里面的感叹号和空格全部被忽略了

用的下面的方法

```
 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%

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    SharePoint 2013 Search REST AP
    SharePoint如何搜索指定的爬网内
    weblogic Servlet: "action" fai
    webdav 与exchange通信失败未找到
    SharePoint2013文档库可以直接存
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    SharePoint 2013 Search REST AP
    SharePoint如何搜索指定的爬网内
    weblogic Servlet: "action" fai
    webdav 与exchange通信失败未找到
    SharePoint2013文档库可以直接存
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    启用Windows防火墙,在Windo
    VMware 10 中安装win8.1虚拟
    DOSBOX下如何显示中文
    如何用 VMProtect 给DLL加密
    未正确加载NugetVSEventsPac
    google付款记录打不开没有反
    局域网无法上网电脑之间无法
    通过cmcc传输密码安全吗
    管理员身份运行和非管理员身
    如何设置共享网络网关
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |