[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

一个文本文件
你他娘的是谁?他娘的我不告诉你。
你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。

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

谢谢了。
1

评分人数

for /f "delims=" %%a in ......
1

评分人数

TOP

本帖最后由 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
复制代码
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

for /f "delims=" %%a in ......
zm900612 发表于 2011-3-20 11:31



已经搞定, 谢谢。

TOP

返回列表