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

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

[复制链接]
发表于 2011-7-18 16:11:53 | 显示全部楼层
为什么我只能写出这样的码?天啊。
@echo off
set str1=你他娘的是谁?我他娘的不告诉你。
set a=%str1:~0,-15%
set b=%str1:~1,-12%
set c=%str1:~4,-8%
set d=%str1:~8,-5%
set e=%str1:~11%
set i=tnd
echo %a%%i%%c%%i%%e%
pause
发表于 2012-9-10 09:36:43 | 显示全部楼层
批处理字符替换
我想问一下,假如替换的对象有空格或者用空格替换的话,好像不能这样写吧。
发表于 2012-10-22 16:40:15 | 显示全部楼层

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=*" %%i in (a.txt) do (
  4. set var=%%i
  5. set var=!var:他娘的=TND!
  6. echo !var!
  7. )
  8. for /f "tokens=*" %%i in (a.txt) do (
  9. set var=%%i
  10. set var=!var:他娘的=!
  11. echo !var!
  12. )
  13. pause
复制代码
发表于 2013-1-5 16:56:58 | 显示全部楼层
回复 11# heng520


    call在里面的作用是什么?
发表于 2013-1-16 15:22:44 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%i in (a.txt) do (
  3.     set var=%%i
  4.     echo !var:他娘的=TND!
  5. )
  6. echo.
  7. echo.
  8. for /f %%i in (a.txt) do (
  9.     set var=%%i
  10.     echo !var:他娘的=!
  11. )
  12. pause
复制代码
发表于 2013-4-3 14:13:53 | 显示全部楼层
  1. @echo off
  2. set a=你他娘的是谁?他娘的我不告诉你。
  3. set b=%a:他娘的=TND%
  4. set c=%a:他娘的=%
  5. echo %b%
  6. echo %c%
  7. pause
复制代码
发表于 2013-4-22 12:54:05 | 显示全部楼层
  1. @echo off
  2. chcp 936>nul

  3. cd.>a.txt
  4. set /p=你他娘的是谁?他娘的我不告诉你。<nul 1>>a.txt
  5. echo.>>a.txt
  6. set /p=你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。<nul 1>>a.txt

  7. echo.==========原文内容==========:
  8. for /f %%i in (a.txt) do echo %%i

  9. echo.&echo.==========“他娘的”换成“TND”后内容==========:
  10. for /f %%i in (a.txt) do (
  11.         set "str=%%i"
  12.         call set "str=%%str:他娘的=TND%%"
  13.         call echo %%str%%
  14. )

  15. echo.&echo.==========去掉这个不雅的词再输出一遍==========:
  16. for /f %%i in (a.txt) do (
  17.         set "str=%%i"
  18.         call set "str=%%str:他娘的=%%"
  19.         call echo %%str%%
  20. )

  21. echo.&echo.让大家都文明起来哈
  22. del /a /f a.txt
  23. pause
复制代码
发表于 2013-5-18 14:06:52 | 显示全部楼层
替换

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. echo 原文
  4. set a=你他娘的是谁?他娘的我不告诉你。 & echo !a!
  5. set b=你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。 & echo !b!
  6. echo.
  7. echo 替换不文明语句
  8. set a=%a:他娘的=TND% & echo !a!
  9. set b=%b:他娘的=TND% & echo !b!
  10. endlocal
  11. pause > nul
复制代码
去除

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. echo 原文
  4. set a=你他娘的是谁?他娘的我不告诉你。 & echo !a!
  5. set b=你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。 & echo !b!
  6. echo.
  7. echo 去掉不文明语句
  8. for /F "tokens=1-3* delims=他娘的" %%i in ('echo %a%') do @echo %%i%%j%%k
  9. for /F "tokens=1-4* delims=他娘的" %%i in ('echo %b%') do @echo %%i%%j%%k%%l
  10. endlocal
  11. pause >nul
复制代码
发表于 2013-7-18 22:09:54 | 显示全部楼层
交流交流
  1. @if not defined debug @echo off
  2. echo 你他娘的是谁?他娘的我不告诉你。>a.txt
  3. echo 你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。>>a.txt
  4. for /f "tokens=*" %%i in (a.txt) do (
  5.     setlocal enabledelayedexpansion
  6.     set "var=%%i"
  7.     set "var=!var:他娘的=TND!"
  8.     echo !var!>>c.txt
  9.     endlocal
  10. )
  11. del a.txt
  12. ren c.txt a.txt
  13. for /f "tokens=*" %%i in (a.txt) do (
  14.     setlocal enabledelayedexpansion
  15.     set "var=%%i"
  16.     set "var=!var:TND=!"
  17.     echo !var!>>c.txt
  18.     endlocal
  19. )
  20. del a.txt
  21. ren c.txt a.txt
复制代码
已测试
发表于 2013-12-9 10:56:07 | 显示全部楼层
  1. @echo off
  2. echo 你他娘的是谁?他娘的我不告诉你。>a.txt
  3. echo 你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。>>a.txt
  4. for /f "tokens=* delims=" %%i in (a.txt) do (
  5.                                         set str=%%i
  6.                                 setlocal enabledelayedexpansion
  7.                                         echo !str:他娘的=TND!
  8.                                 endlocal
  9.                                 )
  10. for /f "tokens=* delims=" %%i in (a.txt) do (
  11.                                         set str=%%i
  12.                                 setlocal enabledelayedexpansion
  13.                                         echo !str:他娘的=!
  14.                                 endlocal
  15.                                 )
  16. del a.txt        
  17. pause>nul
复制代码
发表于 2014-3-11 15:33:07 | 显示全部楼层
@echo off
echo 原句:
set str1=你他娘的是谁?他娘的我不告诉你。
set str2=你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
echo %str1%
echo %str2%
set str3=%str1:他娘的=tnd%
set str4=%str2:他娘的=tnd%
echo.
echo 修改后:
echo %str2%
echo %str4%
pause>nul
发表于 2014-3-11 16:15:12 | 显示全部楼层
echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (set a=%%i&set b=!a:他娘的=TND!&echo !b!>>b.txt)

for /f "delims=" %%i in (a.txt) do (set a=%%i&&set b=!a:他娘的=!&&echo !b!>>b.txt)
pause
发表于 2014-7-27 14:46:54 | 显示全部楼层
@echo off
setlocal        enabledelayedexpansion
rem 查找并替换内容程序
for /f "tokens=*" %%i in (a.txt) do (
        echo %%i
        set        var=%%i
        set        var=!var:他娘的=TMD!
        echo        !var!
)
endlocal
pause
发表于 2014-7-27 19:24:31 | 显示全部楼层
我也学着写一个,模仿别人的。直接替换到源文件中。
  1. @Echo Off

  2. set aaa=a.txt
  3. for /f "tokens=*" %%a In ('dir/b %aaa%') do ((for /f "tokens=1* delims=:" %%b in ('Findstr /n .* "%%a"') do (
  4.   set ss=%%c
  5.   setlocal enabledelayedexpansion
  6.   if "!ss!"=="" (echo.) else set ss=!ss:他娘的=TND!&echo !ss!))>ss.txt
  7.   move /y ss.txt "%%a"
  8.   endlocal
  9.   )

  10. for /f "tokens=*" %%a In ('dir/b %aaa%') do ((for /f "tokens=1* delims=:" %%b in ('Findstr /n .* "%%a"') do (
  11.   set ss=%%c
  12.   setlocal enabledelayedexpansion
  13.   if "!ss!"=="" (echo.) else set ss=!ss:TND=!&echo !ss!))>ss.txt
  14.   move /y ss.txt "%%a"
  15.   endlocal
  16.   )

  17. pause
复制代码
发表于 2014-7-28 08:55:57 | 显示全部楼层
@echo off
set var1=你他娘的是谁?他娘的我不告诉你。
echo %var1:他娘的=TND%
set var2=你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
echo %var2:他娘的=TND%
pause>nul
echo %var2:他娘的=%
echo %var1:他娘的=%
pause>nul
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 00:41 , Processed in 0.018172 second(s), 6 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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