|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
|
2009-4-14 20:11 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
|
2009-4-14 20:19 |
|
|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
|
2009-4-14 20:27 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第 4 楼』:
好了
使用 LLM 解释/回答一下
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
set n=0
for /f "tokens=1,2" %%a in (b.txt) do (set/a n+=1&set #!n!=%%a&set $%%b=$!n!&set $!n!=%%b)
(for /f "delims=" %%a in (a.txt) do (set "str=%%a"
set var=!str:{= !
call :sub !var:}= !
for /l %%i in (1,1,%n%) do (call set "str=%%str:{!$%%i!}=!#%%i!%%")
echo.!str!
))>c.txt
type c.txt
pause
goto :eof
:sub
if "%~1"=="" goto :eof
if /i "%~x1"==".gif" (set "!$%~nx1!=%1")
shift
goto :sub
|

精简
=> 个人 网志  |
|
2009-4-14 21:11 |
|
|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
老大的代码真是神奇.下来学习学习.
自以为自己不是菜鸟,但看了您的代码,我又回到了菜鸟的行列.
Last edited by sady2009 on 2009-4-14 at 21:39 ]
|
|
2009-4-14 21:23 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
|
2009-4-14 22:16 |
|
|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
Originally posted by tireless at 2009-4-14 22:16:
@echo off&setlocal enabledelayedexpansion
set /p str=<a.txt
for /f "tokens=1,2" %%a in (b.txt) do set str=!str:%%b}=@.@" "%%a!
(for %%a in ("%str:{=" & ...
您好,如果a.txt 不是一句子,还含有空行, 该怎么写呢?
自己加了for /f 后运行出错.
四楼的代码完全符合,如果有更简洁,运行更快的,求之不得了。
谢谢了!
|
|
2009-4-15 00:49 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
6楼的才方法才叫绝了。
替换加入标志并分段,判断把以\@.@为尾的段剔除,并把剩下的连接。
用得好巧呀,速度也快,开眼界了!
通常文件不文件不止一行,加个for就可以解决多行的问题了,
Last edited by netbenton on 2009-4-14 at 22:57 ]
|

精简
=> 个人 网志  |
|
2009-4-15 00:53 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%a in (a.txt) do (
set str=%%a
for /f "tokens=1,2" %%a in (b.txt) do set str=!str:%%b}=@.@" "%%a!
for %%a in ("!str:{=" "!") do if "%%~nxa" neq "@.@" set/p=%%~a<nul
echo.
))>a_new.txt
|
|
2009-4-15 01:11 |
|
|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
|
2009-4-15 01:30 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第 11 楼』:
取长补短为提速
使用 LLM 解释/回答一下
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1,2" %%a in (b.txt) do (set #%%b=%%a)
(for /f "delims=" %%a in (a.txt) do (
set "str=%%a"
set "str=!str:{=" "!"
for %%i in ("!str:}=" "!") do if defined #%%~nxi (set/p=!#%%~nxi!<nul) else (set/p=%%i<nul)
echo.
))>c.txt
type c.txt
pause
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%a in (a.txt) do (
set str=%%a
for /f "tokens=1,2" %%a in (b.txt) do set "str=!str:%%b}=%%%%a!"
call echo !str:{http:=%%!
))>a_new.txt
pause
Last edited by netbenton on 2009-4-15 at 23:11 ]
|

精简
=> 个人 网志  |
|
2009-4-15 07:28 |
|
|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
『第 12 楼』:
使用 LLM 解释/回答一下
非常感谢, 速度感觉快一些。
但美中不足是会丢失一些空格,当 http前面是一个空格的时候。
|
|
2009-4-15 08:54 |
|
|
freeants001
中级用户
  
积分 330
发帖 244
注册 2006-4-14 来自 湖北
状态 离线
|
『第 13 楼』:
使用 LLM 解释/回答一下
Originally posted by tireless at 2009-4-14 22:16:
@echo off&setlocal enabledelayedexpansion
set /p str=<a.txt
for /f "tokens=1,2" %%a in (b.txt) do set str=!str:%%b}=@.@" "%%a!
(for %%a in ("%str:{=" & ...
妙~,<img src="images/smilies/face-laugh.png" align="absmiddle" border="0">
|
|
2009-4-15 10:04 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
|
2009-4-15 12:46 |
|
|
sady2009
初级用户
 
积分 58
发帖 60
注册 2009-2-18
状态 离线
|
|
2009-4-15 21:31 |
|