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

[文本处理] [已解决]被替换文本带有感叹号和冒号时批处理出现错误

[复制链接]
发表于 2010-3-29 23:15:58 | 显示全部楼层 |阅读模式
被替换的文件文本内容:
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <?xml version="1.0"?>
  3. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
  4.     <wml>
  5.             <info type="app" appid="10004"
  6.                         
  7.                                    id="10004"  title="牛X枪手"
  8.                                    downURL="http://119.147.26.90/game/10004/4/0/240x320/1/10004.mpp" desc="一款通过触摸屏控制的射击类游戏。"
  9.                                    downLength="165898">
  10.                         
  11.                                  feeType="sms" feeTimes="1"
  12.                                  showType="G" showInterval="0" showTimes="0"  showContent="6定时开机卡的时间阿弗莱克觉88"
  13.                                  command="1029+a" trone="15818790249"
  14.                                  delKeyword="1066,中国移动,指令有误,余额不足" delTrone="10669776200"
  15.                                  confirmKeyword="依琳" confirmTrone="" confirmCommand=""
  16.                                  entranceURL="" subURL="" findRndKeyword="小|小">
  17.         </card>
  18.      </wml>   
复制代码
bat代码:
  1. @echo off
  2. set fn=test.jsp
  3. set ot=15818790249
  4. set nt=11111122222

  5. for /r %%a in (%fn%) do (call :doit "%%~dpa")
  6. goto end

  7. :doit
  8. setlocal enabledelayedexpansion
  9. pushd %1
  10. for /f "tokens=1* delims=:" %%i in ('findstr /n .* %fn%') do (

  11. set txt=%%j
  12. if not "!txt!" == "" set "txt=!txt:%ot%=%nt%!"
  13. >>root.tmp echo.!txt!
  14. )

  15. move /y root.tmp result.jsp

  16. :end
复制代码
替换之后的文本这一句出现问题:
  1. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
复制代码

[ 本帖最后由 wolfsnow 于 2010-3-30 08:53 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2010-3-30 01:40:41 | 显示全部楼层
  1. @echo off
  2. set "fn=te st.jsp"
  3. set "ot=15818790249"
  4. set "nt=11111122222"
  5. for /f "delims=" %%i in ('dir /b /s /a-d "%fn%"') do (
  6.     (for /f "usebackq delims=" %%j in ("%%i") do (
  7.         set "txt=%%j"
  8.         setlocal enabledelayedexpansion
  9.         set "txt=!txt:%ot%=%nt%!"
  10.         echo;!txt!
  11.         endlocal
  12.         ))>root.tmp
  13.     move "root.tmp" "%%~dpiresult.jsp"
  14.     )
  15. pause
复制代码

评分

参与人数 1PB +8 收起 理由
Batcher + 8 乐于助人

查看全部评分

 楼主| 发表于 2010-3-30 08:54:29 | 显示全部楼层

Re:terse

感谢
感谢。
一直在学习中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 06:55 , Processed in 0.036421 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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