|
true4321
初级用户
 
积分 28
发帖 8
注册 2008-4-23
状态 离线
|
『楼 主』:
提取字符并按照要求输出2
使用 LLM 解释/回答一下
1.txt内容为:
11111 aaaa
22222 bbbb
33333 cccc
2.txt内容为:
aaaa 甲
bbbb 乙
cccc 丙
dddd 丁
要求输出3.txt内容为:
11111 aaaa 甲
22222 bbbb 乙
33333 cccc 丙
|
|
2008-6-2 20:23 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
@echo off
set n=-1
for /f "delims=" %%i in (1.txt) do call :lp %%i
pause>nul&goto :eof
:lp
set /a n+=1
set "m=skip=%n%"
if %n% equ 0 set "m="
for /f "%m% tokens=2 delims= " %%i in (2.txt) do echo %1 %%i>>3.txt&goto :eof
Last edited by zw19750516 on 2008-6-2 at 09:51 PM ]
|

批处理之家新域名:www.bathome.net |
|
2008-6-2 21:50 |
|
|
WANKOILZ
初级用户
 
积分 198
发帖 89
注册 2007-9-6 来自 重庆
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
@echo off
for /f "tokens=1*" %%a in (1.txt) do (
for /f "tokens=1*" %%i in (2.txt) do (
if %%b==%%i echo %%a %%b %%j
)
)
pause
|
|
2008-6-3 12:44 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 4 楼』:
使用 LLM 解释/回答一下
Originally posted by WANKOILZ at 2008-6-3 12:44:
@echo off
for /f "tokens=1*" %%a in (1.txt) do (
for /f "tokens=1*" %%i in (2.txt) do (
if %%b==%%i echo %%a %%b %%j
)
)
pause
化码看起来是简化了很多,兄弟考虑了效率问题没有啊,我的两个for循环的次数是用+,而你的是用*。
|

批处理之家新域名:www.bathome.net |
|
2008-6-3 12:45 |
|
|
WANKOILZ
初级用户
 
积分 198
发帖 89
注册 2007-9-6 来自 重庆
状态 离线
|
|
2008-6-3 12:48 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
Originally posted by WANKOILZ at 2008-6-3 12:48:
+是什么意思
第一个for在a.txt中循环的次数+第二个for在b.txt中循环的次数,大循次数实际上就是等于a.txt的行数。
而你的在b.txt中循环的次数等于a.txt的行数*b.txt的行数。
在行数不多的情况下,你的代码执行还可以,但遇到行数多的情况,如两个文件各有10000行,你的代码执行的效率将慢得让人无可忍受,而这种情况是完全可以避免的。
Last edited by zw19750516 on 2008-6-3 at 12:57 PM ]
|

批处理之家新域名:www.bathome.net |
|
2008-6-3 12:49 |
|
|
WANKOILZ
初级用户
 
积分 198
发帖 89
注册 2007-9-6 来自 重庆
状态 离线
|
|
2008-6-3 13:05 |
|