返回列表 发帖
::===========================================
::有一文本内容如下:
::a.txt
::你他娘的是谁?他娘的我不告诉你。
::你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
::论坛可是不允许用不文明用语的,请大家先把“他娘的”换成“TND”输出一遍,最后去掉这个不雅的词再输出一遍。
::===========================================
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (a.txt) do (set num=%%i&&set num=!num:他娘的=TND!&&echo !num!)
pause>nul
for /f "tokens=*" %%i in (a.txt) do (set num=%%i&&set num=!num:他娘的=!&&echo !num!)
pause>nul

TOP

setlocal enabledelayedexpansion

set n=1

for /f %%i in (1.txt) do (

        set str=%%i

        set str1=!str:他娘的=TND!

        if !n! equ 1 (echo !str1!>1.txt&set /a n+=1) else echo !str1!>>1.txt
)

pause

TOP

本帖最后由 shelluserwlb 于 2014-11-7 07:58 编辑
@echo off
for /f "tokens=*" %%a in (a.txt) do (
set str=%%a
call set str=%%str:他娘的=TND%%
call echo %%str%%
)
echo -------------------------------
for /f "tokens=*" %%a in (a.txt) do (
set str=%%a
call set str=%%str:他娘的=%%
call echo %%str%%
)
echo.&pauseCOPY
上面的代码利用call实现变量延迟赋值的效果。

TOP

回复 4# sylovanas

说实话,我对debug这个命令挺好奇的,不过鉴于电脑装的是win764位的,没有这个命令,一直以来都是持观望态度,但是这个除错功能太有用了,有时不知道哪里出了问题,都要来回排查好多遍。。。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

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

TOP

@echo off&setlocal EnableDelayedExpansion %关闭回显,设置变量延迟%
set sou_str=他娘的 ::设置想要替换的字符
set dis_str=tnd ::设置替换后的字符
rem 开始进行批量替换
for /f %%i in (test.txt) do (
set str=%%i
set str=!str:%sou_str%=%dis_str%!
echo !str!
)COPY

TOP

回复 81# dizimotong
自己测试后,发现结果有问题 。自我修改一下
echo off&setlocal EnableDelayedExpansion %关闭回显,设置变量延迟%
rem 该批处理用于批量替换字符
rem 开始进行批量替换
for /f %%i in (test.txt) do (
set str=%%i
set str=!str:他娘的=tnd!
echo !str!
)COPY

TOP

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%I in (a.txt) do (
    set text=%%I
    echo !text:他娘的=TND!
)
for /f "tokens=*" %%I in (a.txt) do (
    set text=%%I
    echo !text:他娘的=!
)COPY

TOP

python练手
f=open("aa.txt","r")
txt=f.read()
print("这是原文,楼主说这不文明:\r\n",txt)
rtxt=txt.replace("他娘的","TND")
print("→_→替换掉了:\r\n",rtxt)COPY
这是原文,楼主说这不文明:
你他娘的是谁?他娘的我不告诉你。
你他娘的到底是谁?我他娘的还就不告诉那个他娘的你。
→_→替换掉了:
你TND是谁?TND我不告诉你。
你TND到底是谁?我TND还就不告诉那个TND你。COPY

TOP

一开始忘记变量延迟了。
另,7楼方法win7下是不是没用?
@echo off
setlocal enabledelayedexpansion
for /f %%i in (a.txt) do (
set t=%%i
set w=!t:他娘的=TND!
echo !w!)
echo;
echo 按空格查看第二输出结果
pause>nul
echo;
echo 去掉不雅词
echo;
for /f %%i in (a.txt) do (
set t=%%i
set w=!t:他娘的=!
echo !w!)
pause>nulCOPY

TOP

#=
julia替换TND.jl
http://bbs.bathome.net/thread-2462-1-1.html
20164106:18:12 codegay
=#
txt=open(readall,"test.txt")
txt=replace(txt,"他娘的","TND")
println(txt)
txt=replace(txt,"TND","")
print(txt)COPY
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

@echo off
for /f "tokens=*" %%a in (a.txt) do (               
    SETLOCAL ENABLEDELAYEDEXPANSION   
    set var=%%a
    set newVar=!var:他娘的=TND!                    
    echo !newVar!
)
pause

2.@echo off
for /f "tokens=*" %%a in (a.txt) do (
    SETLOCAL ENABLEDELAYEDEXPANSION
    set var=%%a
    set newVar=!var:他娘的=!
    echo !newVar!
)
pause

TOP

虽然代码烂但绝对原创
@echo off
setlocal enabledelayedexpansion
set line=0
for /f "tokens=1-4 delims=他娘的" %%i in (a.txt) do (
set /a line+=1
if !line! equ 1 echo %%iTND%%jTND%%k
if !line! equ 2 echo %%iTND%%jTND%%kTND%%l
)
endlocalCOPY

TOP

感觉大家都是很牛的人

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

返回列表