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

[ 新手习题 2 ] 批处理字符替换

有一文本内容如下:
a.txt
  1. 你他娘的是谁?他娘的我不告诉你。
  2. 你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
复制代码


论坛可是不允许用不文明用语的,请大家先把“他娘的”换成“TND”输出一遍,最后去掉这个不雅的词再输出一遍。

让大家都文明起来。

就算你看过别人的帖子了,你也可以再写一个。当然复制就没意义了,一定要自己写。
看似简单的题目,如果你自己写了,可能会发现你的代码原来有错,这样你又可以多学一样本领——改错。
上一题:[ 新手练习 1 ] 简易变量截取
http://bbs.bathome.net/thread-2451-1-1.html
下一题:[ 新手练习 3 ] 简易密码登录
http://bbs.bathome.net/thread-2492-1-1.html

[ 本帖最后由 wxcute 于 2008-11-17 11:31 编辑 ]
1

评分人数

回复 13# ccmvhd 我有一个疑问,为什么要使用变量延迟呢,直接用百分号扩起来变量不行吗?

TOP

回复 2# sylovanas 什么鬼,你的代码是中文的,看起来好像某翻译软件的杰作一样,我看到的是这样:
  1. @IF未定义的调试@ECHO关闭
  2. /F “令牌=*” %%A 在 (A.TXT) 中 执行 ( 设置本地启用延迟扩展
  3. 集 “VAR=%%A”
  4. 设置“VAR=!VAR:=TND!”
  5. 回波!哗啦啦!
  6. 结束本地
  7. ) 对于 /F “令牌=*” (A.TXT)
  8. 中的 %%A 执行 ( 设置本地启用延迟扩展
  9. 集 “VAR=%%A”
  10. 设置“VAR=!VAR:=!”
  11. 回波!哗啦啦!
  12. 端本地
  13.         )
复制代码

TOP

@echo off
setlocal enabledelayedexpansion
for /f %%i in (a.txt) do (
        set str=%%i
        rem echo !str!
        echo !str:他娘的=TND!
)
pause

TOP

本帖最后由 wxf617 于 2022-10-18 17:25 编辑

@ECHO OFF & SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F %%A IN (A.TXT) DO (
    SET str=%%A
    ECHO !str:他娘的=TND!
)
FOR /F %%A IN (A.TXT) DO (
    SET str=%%A
    ECHO !str:他娘的=!
)
pause

仿写二楼大佬的

TOP

@echo off

setlocal enabledelayedexpansion
for /f %%i in (text.txt) do (       
set a=%%i
echo !a! | findstr "他娘的" && set a=!a:他娘的=TND!
echo !a! >> 输出结果.txt
)
pause


我的这个为什么一定要setlocal enabledelayedexpansion这个,使用%%的形式就是获取不到变量的值,在cmd中又可以

TOP

@echo off
setlocal enabledelayedexpansion

set const_str="他娘的"

for /f %%i in (test.txt) do (
    set var=%%i
    echo !var:%const_str:~1,-1%=TND!
)
echo.
echo ======分======割======线======
echo.
for /f %%i in (test.txt) do (
    set var=%%i
    echo !var:%const_str:~1,-1%=!
)

pause

TOP

@echo off
setlocal enabledelayedexpansion
for /f %%i in (1.txt) do (
   set str=%%i
   echo !str:他娘的=TND!
)
pause

TOP

本帖最后由 msdmck 于 2021-9-23 15:59 编辑

有點看不懂...學習一下
英國移民、英國樓盤等事宜成為香港熱話,有英媒整合英國樓價最抵的十大地區可供港人作在英國置業投資英國物業的參考。現時英國樓平均樓價為約23.7萬英鎊。英國房地產很多人都想在英國買樓置業,買英國樓有什麽好處?英國物業投資前景怎麽樣?投放資金到英國物業值得嗎?
許多專門提供SEO服務以及提供網絡營銷策略的SEO公司數碼營銷公司,你又對網絡營銷相關的概念有多少認知呢?SEO收費或會成爲近年企業納入為成本。SEO教學香港自學課程有不少,香港SEO能從提供相關專業服務的SEO廣告公司獲得更高效的幫助。

TOP

  1. @echo off
  2. echo.
  3. set var1=你他娘的是谁?他娘的我不告诉你。
  4. set var2=你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
  5. echo.
  6. echo.
  7. echo 原内容:
  8. echo %var1%
  9. echo %var2%
  10. echo.
  11. echo 过滤后的内容(替换):
  12. echo %var1:他娘的=TND%
  13. echo %var2:他娘的=TND%
  14. echo.
  15. echo 再次过滤后的内容(去掉):
  16. echo %var1:他娘的=%
  17. echo %var2:他娘的=%
  18. echo.
  19. pause
  20. exit
复制代码
天助,自助;人助,助人!

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=*" %%a in (a.txt) do (
  4. set abc=%%a
  5. echo !abc:他娘的=TND!
  6. echo !abc:他娘的=!
  7. )
  8. pause
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ( a.txt ) do (
  4. set str=%%i
  5. set str=!str:他娘的=tnd!
  6. echo !str!
  7. )
  8. pause
复制代码

TOP

中文字符的操作要注意文件编码和命令行窗口的编码是否一致,不一致的场合,会乱码。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4. set  rowcontent=%%i
  5. echo !rowcontent:他娘的=TND!
  6. )
  7. for /f "delims=" %%i in (a.txt) do (
  8. set  rowcontent=%%i
  9. echo !rowcontent:他娘的=!
  10. )
复制代码

TOP

@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (a.txt) do (
  set file=%%a
  set b=!file:他娘的=TND!
  echo !b!>>b.txt
)
for /f "delims=" %%b in (b.txt) do (
  set name=%%b
  set c=!name:TND=!
  echo !c!>>b.txt
)
pause
新手代码,但一定是我自己写的,求指教,谢谢!

TOP

返回列表