返回列表 发帖
@echo off & setlocal EnableDelayedExpansion
echo 你他娘的是谁?他娘的我不告诉你。你他娘的到底是谁?我他娘的还就不告诉那个他娘的你
pause>nul
echo.
set n="你他娘的是谁?他娘的我不告诉你。你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。"
for /f  "tokens=* delims=" %%i in (%n%) do (
    set a=%%i
    set a=!a:他娘的=TND!
    echo !a!
)
pause>nul
echo.
echo.
set b="%a%"
for /f "tokens=* delims=" %%a in (%b%)do (
    set b=%%a
    set b=!b:TND=!
    echo !b!
)
pause>nulCOPY
说句话,变量延迟真TMD难理解(— —)

TOP

第二个目的 用一条语句就可以解决,不用P处理

for /f "delims=他娘的 tokens=1,2,3,4,5" %c in (123.txt) do @echo %c%d%e%f%g

TOP

@echo off
set str=你他娘的是谁?他娘的我不告诉你。你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
echo  %str:他娘的=TND%
echo %str:他娘的=%
pauseCOPY


学习了for,重新写
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (a.txt) do (
    set a=%%i
    set a=!a:他娘的=TND!
    echo !a!
)
for /f "tokens=*" %%i in (a.txt) do (
    set a=%%i
    set a=!a:他娘的=!
    echo !a!
)
pauseCOPY

[ 本帖最后由 zgq0301 于 2009-11-13 19:48 编辑 ]

TOP

换成“TND”输出:
@echo off
setlocal enabledelayedexpansion
for /f %%a in (a.txt) do (
  set int=%%a
  set yu=!int:他娘的=TND!
  echo !yu!
)
pause>nulCOPY
去掉“他娘的”输出:
@echo off
setlocal enabledelayedexpansion
for /f %%a in (a.txt) do (
  set int=%%a
  set yu=!int:他娘的=!
  echo !yu!
)
pause>nulCOPY

TOP

@echo off
setlocal enabledelayedexpansion
echo 流氓对话:
type a.txt
echo.
echo 网络对话:
pause>nul
for /f %%a in (a.txt) do (
set str=%%a
set newstr=!str:他娘的=TND!
echo !newstr!
)
echo.
echo 文明对话:
pause>nul
for /f %%a in (a.txt) do (
set str=%%a
set newstr=!str:他娘的=!
echo !newstr!
)
echo    按任意键退出!
pause>nulCOPY

TOP

如下
@ECHO OFF
SET VARa=你他娘的是谁?他娘的我不告诉你。你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
SET VARb=%VARa:他娘的=TND%
ECHO 替换后的值:%VARb%
pause

TOP

不用变量延时也能做到

@echo off
set /p str=<1.txt
set str1=%str:他娘的=TND%
set str2=%str1:TND=%
echo %str% &echo.
echo %str1% &echo.
echo %str2% &echo.
pauseCOPY

TOP

@echo off
setlocal
setlocal enabledelayedexpansion
for "tokens=*" /f %%f in (a.txt) do (
  set strtmp=%%f
  set strtmp=!strtmp:他娘的=TND!
  echo !strtmp!
)
endlocalCOPY
我是一只小菜鸟,飞到东来飞到西……

TOP

@echo off
setlocal enabledelayedexpansion
for /f %%i in (test.txt) do (
set str=%%i
echo !str:他娘的=TND!
)
pause
for /f %%i in (test.txt) do (
set str=%%i
echo !str:他娘的=!
)
pauseCOPY
扬鞭策马自奋蹄!

TOP

呵呵,其实我是看了8楼的方法,再改了一点就得出了楼主的第二个题目的答案了

::A1
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (a.txt) do (
    set var=%%a
    set change=!var:他娘的=TND!
    echo !change!
)
pause>nul

::A2
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (a.txt) do (
    set var=%%a
    set change=!var:他娘的=!
    echo !change!
)
pause>nul

TOP

写了了遍 还真发现错的地方 

写=的时候没关输入法 结果查错 查了半天
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
    set a=%%i
    set b=!a:他娘的=TND!
    echo !b!
)
for /f "delims=" %%j in (a.txt) do (
    set c=%%j
    set d=!c:他娘的=!
    echo !d!
)
pauseCOPY

TOP

@echo off
setlocal enabledelayedexpansion
for /f %%b in (a.txt) do (
set dd=%%b
set bb=!dd:他娘的=tnd!
echo !bb!
)
pause>nul
蚂蚁dos

TOP

看看7楼的答案,暂时不潜水

TOP

先看看高手如何做自己再研究下丶

TOP

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (a.txt) do (
    set var=%%a
    set change=!var:他娘的=TND!
    echo !change!>>b.txt
   
)
for /f "tokens=*" %%b in (b.txt) do (
    set change=%%b
set str=!change:TND=!
    echo !str!
)
pause>nul

TOP

返回列表