|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第 16 楼』:
使用 LLM 解释/回答一下
如果10楼的代码可行的话,那么这样效率应该高些。
:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims= " %%a in (1.txt) do set "%%b=%%a"
for /f "delims=" %%a in (2.txt) do (
for /f "delims=" %%b in ('crc32 "%%a"') do (
if defined %%b echo !%%b! %%a
))
pause
If the code on floor 10 is feasible, then the efficiency should be higher.
:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims= " %%a in (1.txt) do set "%%b=%%a"
for /f "delims=" %%a in (2.txt) do (
for /f "delims=" %%b in ('crc32 "%%a"') do (
if defined %%b echo !%%b! %%a
))
pause
|

致精致简! |
|
2008-7-9 18:59 |
|
|
quya
高级用户
    五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第 17 楼』:
使用 LLM 解释/回答一下
上面的代码都不行啊, 不过还是衷心感谢大家.
我想先从简单的开始, 我有一个很小的CRC32 程序
到我 ftp://quya.2mydns.com/crc32.com 下载
此程序在代码页437下运行, 而且不支持长文件名和带有空格的目录, 但用以下代码可以得到正确的结果.
for /f "delims==" %i in (2.txt) do (if /i %~xi==.cat (crc32 %~fsi>>crc.txt) else (expand %~fsi %temp%\oembios.cat&crc32 %temp%\oembios.cat>>crc.txt))
2.txt 文件内容如下:
G:\IBM\oembios.cat
G:\IBM\OEMBIOS.CA_
G:\WXPOEM\IBM\I386\OEMBIOS.CA_
G:\xpdos\I386\OEMBIOS.CA_
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT
G:\xpdos\WXPOEM\ASUS\OEMBIOS.CA_
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT
F:\e\Backup\Tools\OEM 5文件\Acer\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\COMPAQ\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\HEDY\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\HP\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\IBM\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\Legend\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\SAMSUNG\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5文件\Sony\OEMBIOS.CA_
F:\FTP\Up\2003ent\OEMBIOS.CA_
E:\OEM 文件\ACER\OEMBIOS.CAT
E:\OEM 文件\LEGEND\OEMBIOS.CA_
运行的结果如下:
G:\IBM\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
C:\WINXP\TEMP\oembios.cat B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
C:\WINXP\TEMP\oembios.cat 700A8481
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat 162C7931
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 7B06BD13
C:\WINXP\TEMP\oembios.cat 904CF15A
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat 57E3E3DC
E:\OEM文~1\ACER\OEMBIOS.CAT 717B6EF3
C:\WINXP\TEMP\oembios.cat 7B06BD13
先解决以下问题, 如何把临时目录 C:\WINXP\TEMP\ 还原成本来目录.
然后再慢慢来, 谢谢大家, 老土的脑筋现在有点不好使.
Last edited by quya on 2008-7-9 at 09:42 PM ]
The code above doesn't work, but I still sincerely thank everyone.
I want to start with something simple. I have a very small CRC32 program
Download it from my ftp://quya.2mydns.com/crc32.com
This program runs under code page 437 and doesn't support long file names or directories with spaces, but the following code can get the correct result.
for /f "delims==" %i in (2.txt) do (if /i %~xi==.cat (crc32 %~fsi>>crc.txt) else (expand %~fsi %temp%\oembios.cat&crc32 %temp%\oembios.cat>>crc.txt))
The content of file 2.txt is as follows:
G:\IBM\oembios.cat
G:\IBM\OEMBIOS.CA_
G:\WXPOEM\IBM\I386\OEMBIOS.CA_
G:\xpdos\I386\OEMBIOS.CA_
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT
G:\xpdos\WXPOEM\ASUS\OEMBIOS.CA_
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT
F:\e\Backup\Tools\OEM 5 files\Acer\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\COMPAQ\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\HEDY\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\HP\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\IBM\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\Legend\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\SAMSUNG\OEMBIOS.CA_
F:\e\Backup\Tools\OEM 5 files\Sony\OEMBIOS.CA_
F:\FTP\Up\2003ent\OEMBIOS.CA_
E:\OEM files\ACER\OEMBIOS.CAT
E:\OEM files\LEGEND\OEMBIOS.CA_
The running result is as follows:
G:\IBM\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
C:\WINXP\TEMP\oembios.cat B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
C:\WINXP\TEMP\oembios.cat 700A8481
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat 162C7931
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 7B06BD13
C:\WINXP\TEMP\oembios.cat 904CF15A
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat 57E3E3DC
E:\OEM files~1\ACER\OEMBIOS.CAT 717B6EF3
C:\WINXP\TEMP\oembios.cat 7B06BD13
First, solve the following problem: how to restore the temporary directory C:\WINXP\TEMP\ to the original directory.
Then take it step by step. Thank you everyone. The old-fashioned mind is a bit not working well now.
Last edited by quya on 2008-7-9 at 09:42 PM ]
|

我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-7-9 21:27 |
|
|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第 18 楼』:
使用 LLM 解释/回答一下
越来越不知道你要干什么了?
G:\IBM\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
C:\WINXP\TEMP\oembios.cat B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
C:\WINXP\TEMP\oembios.cat 700A8481
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat 162C7931
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat D7A77612
这些是crc.txt的内容吗?
如果是,难道7楼的代码不行?
More and more don't know what you're going to do?
G:\IBM\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
C:\WINXP\TEMP\oembios.cat B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
C:\WINXP\TEMP\oembios.cat 700A8481
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat 162C7931
C:\WINXP\TEMP\oembios.cat 74572CCF
C:\WINXP\TEMP\oembios.cat D7A77612
Are these the contents of crc.txt?
If yes, does that mean the code on floor 7 doesn't work?
|

致精致简! |
|
2008-7-9 21:36 |
|
|
quya
高级用户
    五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第 19 楼』:
使用 LLM 解释/回答一下
Originally posted by 26933062 at 2008-7-9 09:36 PM:
越来越不知道你要干什么了?
G:\IBM\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 90BBDCA0
G:\xpdos\WXPOEM\ACE ...
下午在单位没试你的代码, 对不起, 刚才试了下, 正确而且速度很快.
但是能否解决在压缩文件的情况下还原本来目录的问题. 17楼我提到的问题.
能解释下 for /f "tokens=1* delims= " %%a in (1.txt) do set %%b=%%a 这句意思吗? %%b 是第2个 token, 也就是 "1*" 中的 "*", 怎么还可以赋值, 实在看不懂啊 .
再编辑, 有点知道了, 这样生成了很多变量, 变量名取第2个token, 赋的值是第一个, 我担心的是, 如果我文件很长, 变量名这么多会不会溢出而出错?
因为小时候就知道, 要节省变量名和及时释放变量, 我那个时候的内存是小得可怜的, 不敢用太多变量.
Last edited by quya on 2008-7-9 at 10:02 PM ]
越来越不知道你要干什么了?
G:\IBM\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat D7A77612
C:\WINXP\TEMP\oembios.cat 90BBDCA0
G:\xpdos\WXPOEM\ACE ...
I didn't test your code at the unit this afternoon, sorry. Just tried it just now, it's correct and very fast.
But can it solve the problem of restoring the original directory in the case of a compressed file? The problem I mentioned on floor 17.
Can you explain the meaning of the sentence "for /f "tokens=1* delims= " %%a in (1.txt) do set %%b=%%a"? %%b is the second token, which is "*" in "1*", how can it be assigned a value, I really don't understand.
Edit again, I kind of understand. In this way, many variables are generated. The variable name takes the second token, and the assigned value is the first one. I am worried that if my file is very long, will there be too many variable names and errors?
Because when I was a child, I knew that I should save variable names and release variables in time. The memory I had back then was extremely small, and I didn't dare to use too many variables.
Last edited by quya on 2008-7-9 at 10:02 PM ]
|

我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-7-9 21:47 |
|
|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第 20 楼』:
使用 LLM 解释/回答一下
不理解
是2.txt中有压缩文件?
crc32.exe 可以对其进行解压缩?并且解压到C:\WINXP\TEMP\目录?
本来目录又是什么目录?
Don't understand
Is there a compressed file in 2.txt?
Can crc32.exe decompress it? And decompress it to the C:\WINXP\TEMP\ directory?
What was the original directory?
|

致精致简! |
|
2008-7-9 21:52 |
|
|
quya
高级用户
    五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第 21 楼』:
使用 LLM 解释/回答一下
Originally posted by 26933062 at 2008-7-9 09:52 PM:
不理解
是2.txt中有压缩文件?
crc32.exe 可以对其进行解压缩?并且解压到C:\WINXP\TEMP\目录?
本来目录又是什么目录?
是的, 文件名扩展名是 .ca_ 的就是压缩文件, 需要expand 再对它校验, 请参照我17楼的解压代码, 谢谢.
Originally posted by 26933062 at 2008-7-9 09:52 PM:
Don't understand
Is there a compressed file in 2.txt?
Can crc32.exe decompress it? And decompress it to the C:\WINXP\TEMP\ directory?
What was the original directory?
Yes, the file with the extension .ca_ is a compressed file, which needs to be expanded and then verified. Please refer to the decompression code in my 17th floor, thank you.
|

我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-7-9 22:01 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 22 楼』:
使用 LLM 解释/回答一下
老土测试了我14的代码吗?我里面加了对rar文件的判断和解压,你只要自己改下就可以了。
Last edited by zw19750516 on 2008-7-9 at 10:20 PM ]
Did Laotu test my code for version 14? I added judgments and extraction for RAR files in it. You just need to modify it yourself.
Last edited by zw19750516 on 2008-7-9 at 10:20 PM ]
|

批处理之家新域名:www.bathome.net |
|
2008-7-9 22:11 |
|
|
quya
高级用户
    五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第 23 楼』:
使用 LLM 解释/回答一下
Originally posted by zw19750516 at 2008-7-9 10:11 PM:
老土测试了我14的代码吗?我里面加了对rar文件的判断和解压,你只要自己改下后缀就可以了。
谢谢你的代码, 但
1. 解压不是 WINRAR, 当然这个我可以改
2. 最关键的是你解压在当前目录了, 而当前目录可能只读, 所以一定要解到临时目录
由于2的问题, 如何取得原来目录就成了问题.
Originally posted by zw19750516 at 2008-7-9 10:11 PM:
Did Lao Tu test my code for version 14? I added judgment and extraction for RAR files in it. You just need to change the suffix yourself.
Thank you for your code, but
1. The extraction is not WINRAR, of course I can change this.
2. The most critical thing is that you extracted it in the current directory, and the current directory may be read-only, so it must be extracted to a temporary directory.
Due to the problem of 2, how to get the original directory has become a problem.
|

我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-7-9 22:20 |
|
|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第 24 楼』:
使用 LLM 解释/回答一下
根据你17楼代码改进,获取原目录及文件名
至于你说变量益处,这个问题我还没遇到过,
作了个简单的测试,十万个变量名没发现错误的现象。我的物理内存是128m
但如果你的1.txt内容很长的话,你用前面的代码for+findstr估计你会等到头发变白。。。
@echo off
for /f "delims==" %%i in (2.txt) do (
if /i %%~xi==.cat (crc32 %%~fsi>>crc.txt) else (
expand %~fsi %temp%\oembios.cat
for /f "tokens=2" %%a in ('crc32 %temp%\oembios.cat') do echo %%i %%a>>crc.txt
))
Last edited by 26933062 on 2008-7-9 at 10:34 PM ]
Improve according to your code on floor 17, get the original directory and file name
As for the variable benefit you mentioned, I haven't encountered this problem yet.
I made a simple test, and no error phenomenon was found with 100,000 variable names. My physical memory is 128m
But if the content of your 1.txt is very long, if you use the previous code for+findstr, you will wait until your hair turns white...
@echo off
for /f "delims==" %%i in (2.txt) do (
if /i %%~xi==.cat (crc32 %%~fsi>>crc.txt) else (
expand %~fsi %temp%\oembios.cat
for /f "tokens=2" %%a in ('crc32 %temp%\oembios.cat') do echo %%i %%a>>crc.txt
))
Last edited by 26933062 on 2008-7-9 at 10:34 PM ]
|

致精致简! |
|
2008-7-9 22:33 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 25 楼』:
使用 LLM 解释/回答一下
我日,好麻烦,这下可以解决你的问题了吧:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (2.txt) do (
if /i "%%~xi" equ ".cat" (
crc32 %%~fsi>>crc.txt
) else (
expand "%%i" %temp%\oembios.cat
for /f "tokens=2" %%a in ('crc32 %temp%\oembios.cat') do set str=%%a
echo %%i !str!>>crc.txt
del /q %temp%\oembios.cat
))
for /f "tokens=1,2" %%a in (1.txt) do (
for /f "delims=" %%i in ('findstr "%%b" crc.txt') do echo %%a %%i
)
pause>nul
Last edited by zw19750516 on 2008-7-9 at 11:25 PM ]
Oh, so troublesome, now this can solve your problem, right?
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (2.txt) do (
if /i "%%~xi" equ ".cat" (
crc32 %%~fsi>>crc.txt
) else (
expand "%%i" %temp%\oembios.cat
for /f "tokens=2" %%a in ('crc32 %temp%\oembios.cat') do set str=%%a
echo %%i !str!>>crc.txt
del /q %temp%\oembios.cat
))
for /f "tokens=1,2" %%a in (1.txt) do (
for /f "delims=" %%i in ('findstr "%%b" crc.txt') do echo %%a %%i
)
pause>nul
Last edited by zw19750516 on 2008-7-9 at 11:25 PM ]
|

批处理之家新域名:www.bathome.net |
|
2008-7-9 22:35 |
|
|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第 26 楼』:
使用 LLM 解释/回答一下
不好意思24楼说的十万个变量名,没测试完,实际测试是四万个。
I'm sorry, the 24th floor mentioned 100,000 variable names, but it wasn't fully tested. The actual test showed 40,000.
|

致精致简! |
|
2008-7-9 22:59 |
|
|
quya
高级用户
    五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第 27 楼』:
使用 LLM 解释/回答一下
24, 25 楼的代码 %~fsi 都 少了个 %, 不过这容易改.
25楼运行结果不是太理想:
G:\IBM\oembios.cat D7A77612
G:\IBM\OEMBIOS.CA_ D7A77612
G:\WXPOEM\IBM\I386\OEMBIOS.CA_ D7A77612
G:\xpdos\I386\OEMBIOS.CA_ 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
G:\xpdos\WXPOEM\ASUS\OEMBIOS.CA_ B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
F:\e\Backup\Tools\OEM 5文件\Acer\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\COMPAQ\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\HEDY\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\HP\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\IBM\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\Legend\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\SAMSUNG\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5文件\Sony\OEMBIOS.CA_ ??
F:\FTP\Up\2003ent\OEMBIOS.CA_ 57E3E3DC
E:\OEM ??
E:\OEM 文件\LEGEND\OEMBIOS.CA_ ??
24楼运行结果接近完美:
G:\IBM\oembios.cat D7A77612
G:\IBM\OEMBIOS.CA_ D7A77612
G:\WXPOEM\IBM\I386\OEMBIOS.CA_ D7A77612
G:\xpdos\I386\OEMBIOS.CA_ 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
G:\xpdos\WXPOEM\ASUS\OEMBIOS.CA_ B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
F:\e\Backup\Tools\OEM 5文件\Acer\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\COMPAQ\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\HEDY\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\HP\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\IBM\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\Legend\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\SAMSUNG\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\Sony\OEMBIOS.CA_ B20C65BF
F:\FTP\Up\2003ent\OEMBIOS.CA_ 57E3E3DC
E:\OEM ??
E:\OEM 文件\LEGEND\OEMBIOS.CA_ 57E3E3DC
但想不通的是倒数第2个结果会这样?!!
我仔细看了代码, 没错误啊.
用下边语句检测也没问题啊, 晕倒!
for /f "delims=" %i in (2.txt) do echo %~fsi
大家辛苦了!!! 万分感谢!!
Last edited by quya on 2008-7-9 at 11:08 PM ]
The code on floors 24 and 25 has a missing % in %~fsi, but it's easy to fix.
The running result on floor 25 is not too ideal:
G:\IBM\oembios.cat D7A77612
G:\IBM\OEMBIOS.CA_ D7A77612
G:\WXPOEM\IBM\I386\OEMBIOS.CA_ D7A77612
G:\xpdos\I386\OEMBIOS.CA_ 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
G:\xpdos\WXPOEM\ASUS\OEMBIOS.CA_ B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
F:\e\Backup\Tools\OEM 5 files\Acer\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\COMPAQ\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\HEDY\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\HP\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\IBM\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\Legend\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\SAMSUNG\OEMBIOS.CA_ ??
F:\e\Backup\Tools\OEM 5 files\Sony\OEMBIOS.CA_ ??
F:\FTP\Up\2003ent\OEMBIOS.CA_ 57E3E3DC
E:\OEM ??
E:\OEM files\LEGEND\OEMBIOS.CA_ ??
The running result on floor 24 is nearly perfect:
G:\IBM\oembios.cat D7A77612
G:\IBM\OEMBIOS.CA_ D7A77612
G:\WXPOEM\IBM\I386\OEMBIOS.CA_ D7A77612
G:\xpdos\I386\OEMBIOS.CA_ 90BBDCA0
G:\xpdos\WXPOEM\ACER\OEMBIOS.CAT 717B6EF3
G:\xpdos\WXPOEM\ASUS\OEMBIOS.CA_ B20C65BF
G:\xpdos\WXPOEM\DELL\OEMBIOS.CAT B6F0EEFD
G:\xpdos\WXPOEM\HPQ\OEMBIOS.CAT CD4E1902
G:\xpdos\WXPOEM\IBM\OEMBIOS.CAT D7A77612
G:\xpdos\WXPOEM\LENOVO\OEMBIOS.CAT 5237B729
F:\e\Backup\Tools\OEM 5 files\Acer\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\COMPAQ\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\HEDY\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\HP\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\IBM\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\Legend\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\SAMSUNG\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5 files\Sony\OEMBIOS.CA_ B20C65BF
F:\FTP\Up\2003ent\OEMBIOS.CA_ 57E3E3DC
E:\OEM ??
E:\OEM files\LEGEND\OEMBIOS.CA_ 57E3E3DC
But I can't figure out why the second-to-last result is like this!
I carefully checked the code, and there are no errors.
Testing with the following statement is also okay, really frustrating!
for /f "delims=" %i in (2.txt) do echo %~fsi
Everyone has worked hard!!! Thanks a million!!
Last edited by quya on 2008-7-9 at 11:08 PM ]
|

我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-7-9 23:06 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 28 楼』:
使用 LLM 解释/回答一下
如不要生成临时的crc.txt:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (2.txt) do (
if /i "%%~xa" equ ".cat" (
for /f "tokens=2" %%d in ('crc32 %%~fsa') do set str=%%d
) else (
expand "%%a" %temp%\oembios.cat
for /f "tokens=2" %%d in ('crc32 %%temp%\oembios.cat') do set str=%%d
)
for /f "tokens=1,2" %%b in (1.txt) do echo !str!|findstr "%%c">nul&&echo %%b %%a !str!
del /q /f %temp%\oembios.cat
)
pause>nul
Last edited by zw19750516 on 2008-7-9 at 11:31 PM ]
If you don't generate the temporary crc.txt:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (2.txt) do (
if /i "%%~xa" equ ".cat" (
for /f "tokens=2" %%d in ('crc32 %%~fsa') do set str=%%d
) else (
expand "%%a" %temp%\oembios.cat
for /f "tokens=2" %%d in ('crc32 %%temp%\oembios.cat') do set str=%%d
)
for /f "tokens=1,2" %%b in (1.txt) do echo !str!|findstr "%%c">nul&&echo %%b %%a !str!
del /q /f %temp%\oembios.cat
)
pause>nul
Last edited by zw19750516 on 2008-7-9 at 11:31 PM ]
|

批处理之家新域名:www.bathome.net |
|
2008-7-9 23:09 |
|
|
quya
高级用户
    五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第 29 楼』:
使用 LLM 解释/回答一下
仔细看了下, 还是有问题.
F:\e\Backup\Tools\OEM 5文件\Acer\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\COMPAQ\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\HEDY\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\HP\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\IBM\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\Legend\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\SAMSUNG\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\Sony\OEMBIOS.CA_ B20C65BF
这里全部一样了.
After carefully checking, there is still an issue.
F:\e\Backup\Tools\OEM 5文件\Acer\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\COMPAQ\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\HEDY\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\HP\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\IBM\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\Legend\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\SAMSUNG\OEMBIOS.CA_ B20C65BF
F:\e\Backup\Tools\OEM 5文件\Sony\OEMBIOS.CA_ B20C65BF
Here, all are the same.
|

我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-7-9 23:16 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第 30 楼』:
使用 LLM 解释/回答一下
Originally posted by quya at 2008-7-9 23:06:
24, 25 楼的代码 %~fsi 都 少了个 %, 不过这容易改.
25楼运行结果不是太理想:
24楼运行结果接近完美:
但想不通的是倒数第2个结果会这样?!!
...
难道1.txt是多余的?
Originally posted by quya at 2008-7-9 23:06:
There is a missing % in the code %~fsi on floors 24 and 25, but it's easy to fix.
The running result on floor 25 is not too ideal:
The running result on floor 24 is close to perfect:
But I can't figure out why the second-to-last result is like this?!!
...
Is the 1.txt redundant?
|

批处理之家新域名:www.bathome.net |
|
2008-7-9 23:16 |
|