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

[文本处理] [已解决]批处理怎样转换文本字符中的感叹号?

[复制链接]
发表于 2011-5-23 21:40:15 | 显示全部楼层 |阅读模式
本帖最后由 yue 于 2011-5-23 22:57 编辑

----------------------------- 1.txt 中的代码如下: ---------------------------------------
123!456!789!abc!def
666!jjj55!ff!!!hh
------------------------------ 转换.bat 代码如下: ---------------------------------------
  1. for /f "tokens=*" %%i in ( .\1.txt) do (
  2.     set inpt=%%i
  3. set "var=!inpt:!=#!"
  4. >>".\2.txt" echo !var!
  5. )
复制代码
--------------------------------------------------------------------------------------------
目的: 想要在不改动 1.txt 中的内容下,而要把 1.txt 中的 "感叹号" 全部转换为 "#" 字符!!
转换出来的 2.txt 内容效果应该是:
123#456#789#abc#def
666#jjj55#ff###hh

问题: 经过 for 语句后感叹号消失了!

******   不知道哪位高手可以解决这个问题?  *******

评分

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

查看全部评分

发表于 2011-5-23 21:52:48 | 显示全部楼层
1、当心%%i中的感叹号被当成变量
2、无法在延迟扩展变量中替换英文感叹号
  1. @echo off
  2. for /f "tokens=*" %%i in ( .\1.txt) do (
  3.     endlocal
  4.     set inpt=%%i
  5.     call set "var=%%inpt:!=#%%"
  6.     setlocal enabledelayedexpansion
  7.     >>".\2.txt" echo !var!
  8. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2011-5-23 22:00:50 | 显示全部楼层
  1. @echo off
  2. cd.>2.txt
  3. for /f "delims=" %%a in (1.txt) do (
  4.     set inpt=%%a
  5.     call set var=%%inpt:!=#%%
  6.     >>2.txt call echo,%%var%%
  7. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-5-23 22:24:00 | 显示全部楼层
试了以上两个方案; 还是没能替换掉啊!!
 楼主| 发表于 2011-5-23 22:30:53 | 显示全部楼层
for /f "tokens=*" %%i in ( .\1.txt) do (
    endlocal
    set inpt=%%i
    call :dd
    setlocal enabledelayedexpansion
    >>".\2.txt" echo !var!
)
:dd
set var=%inpt:!=#%

哇!!我把 zm900612 的稍微改了下,这样就ok了, 哈哈; 解决问题了
发表于 2011-5-24 00:05:41 | 显示全部楼层
2# zm900612


这个代码没测试就贴出来了吧?
发表于 2011-5-24 12:23:50 | 显示全部楼层
6# Batcher


无语,当时没发现,今天试了下真的出错了,积累了一定的代码经验以后就经常不测试了,所以错误比较多...
看代码没发现问题,百思不得其解,最后才想到是%%i的原因,这参数真造孽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 12:07 , Processed in 0.018209 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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