Windows 从文本中筛选字符串并替换的批处理文件。。。但是是一批而不是多批?
我有一个带有以下行的.txt文件:Windows 从文本中筛选字符串并替换的批处理文件。。。但是是一批而不是多批?,windows,string,batch-file,filter,Windows,String,Batch File,Filter,我有一个带有以下行的.txt文件: #307714 Joana Darc Vitoria Campos 2013-07-14 14:25:27 0.0000 #322521 ALINE MADALENA 2013-07-16 08:31:11 0.0000 #323057 Juliana E Ferreira Araujo 2013-07-16 09:35:36 0.0000 #325581 DIOGO 2013-07-16 14:12:12 0.0000 #326718 Matheus 201
#307714 Joana Darc Vitoria Campos 2013-07-14 14:25:27 0.0000
#322521 ALINE MADALENA 2013-07-16 08:31:11 0.0000
#323057 Juliana E Ferreira Araujo 2013-07-16 09:35:36 0.0000
#325581 DIOGO 2013-07-16 14:12:12 0.0000
#326718 Matheus 2013-07-16 16:29:51 0.0000
我已经编写了下面的代码,它将从上面的文本中过滤,并在一个单独的批中替换
因此,第一个过滤#的方法如下:
@echo off
if exist id.txt (
for /f "tokens=1 delims= " %%a in (id.txt) do (
findstr /c:"%%a" id.txt >nul && (echo %%a >> trials.txt | echo Filtered: %%a to trials.txt)
)
) else (
Echo id.txt não existe.. cria o ficheiro e cola lá a lista de refs para filtragem!
pause >nul
)
它将过滤ID并将其放入名为trials.txt的文本文件中
之后,我用以下代码创建了一个单独的批,用链接替换#:
@echo off
setlocal DisableDelayedExpansion
set INTEXTFILE=trials.txt
set OUTTEXTFILE=test_out.txt
set SEARCHTEXT=#
set REPLACETEXT=Give trial:
set OUTPUTLINE=
for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
SET string=%%A
setlocal EnableDelayedExpansion
SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!
>> %OUTTEXTFILE% echo(!modified!
endlocal
)
del /q %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
运行两个批次后的最终结果为:
Give trial:307714
Give trial:322521
Give trial:323057
Give trial:325581
Give trial:326718
有人知道在一个文件中生成这两个批处理文件的方法吗
谢谢:)
我真的不知道你是否需要
trials.txt
,或者id.txt
是否只包含与匹配的行。\nnn…
id.txt是我用初始列表创建的,试用是由编程用没有名字的id列表创建的,等等:)
for /f "tokens=1 delims=# " %%a in (id.txt) do (
>>trials.txt echo(#%%a
>>test_out.txt echo(Give trial:%%a
)