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

[文本处理] [已解决]批处理有空格时如何替换?

[复制链接]
发表于 2011-3-20 11:27:10 | 显示全部楼层 |阅读模式
一个文本文件
你他娘的是谁?他娘的我不告诉你。
你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。

我把“他娘的”替换为“TND", 可以用以下代码
  1. for /f %%i in (a.txt) do (
  2. set v=%%i
  3. call echo %%v:他娘的=TMD%%
  4. )>>2.txt
复制代码
但如果每行前面有空格, 请问代码该怎么写?
A 你他娘的是谁?他娘的我不告诉你。
B 你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。

谢谢了。

评分

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

查看全部评分

发表于 2011-3-20 11:31:16 | 显示全部楼层
for /f "delims=" %%a in ......

评分

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

查看全部评分

发表于 2011-3-20 11:40:47 | 显示全部楼层
本帖最后由 andyrave 于 2011-3-20 11:44 编辑
  1. @echo off & setlocal enableDelayedExpansion
  2. set file=1.txt
  3. set "file=%file:"=%"
  4. for %%i in ("%file%") do set file=%%~fi
  5. rem replaced=空格
  6. set replaced=
  7. set all=
  8. for /f "delims=" %%i in ('type "%file%"') do (
  9. set str=%%i
  10. set "str=!str:%replaced%=%all%!"
  11. echo !str!>>"%file%"_tmp.txt
  12. )
  13. move "%file%"_tmp.txt "%file%" 1>nul 2>nul
复制代码
 楼主| 发表于 2011-3-20 12:10:31 | 显示全部楼层
for /f "delims=" %%a in ......
zm900612 发表于 2011-3-20 11:31



已经搞定, 谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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