首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows批处理Goto

Windows批处理Goto
EN

Stack Overflow用户
提问于 2016-07-19 06:37:37
回答 1查看 131关注 0票数 0

第一次在这个论坛上发布问题时,不要太粗糙。

我正在尝试创建一个小批处理文件,该文件获取文件夹中几个文件的MD5散列,并检查它们是否与我想要的文件相同,但我被卡住了。

代码语言:javascript
复制
if "!md2temp!"=="d1 9e 93 c0 a2 94 59 10 66 44 af 17 ea c5 56 2c" goto verificat
if "!md2temp!"=="d2 19 c0 a8 af f2 c7 71 94 6d 73 55 49 16 bd 9a" goto verificat
if "!md2temp!"=="8d f4 d4 32 4e 57 55 f1 a0 56 7d b3 c5 be 4c 58" goto verificat
if "!md2temp!"=="f9 56 47 0c 7f 50 91 01 02 21 a0 5b 7e 2f 19 92" goto verificat
if "!md2temp!"=="64 00 e2 24 b8 b4 4e ce 59 a9 92 e6 d8 23 37 19" goto verificat
if "!md2temp!"=="1a c3 d6 12 38 9f a6 79 f5 ca 3c 6b ab 85 51 45" goto verificat
if "!md2temp!"=="18 95 76 df e5 5a f3 b7 0d b7 e3 e2 31 2c d0 fd" goto verificat
goto fals

请注意,md5散列以这种格式保存在md5ttt.tmp中:

代码语言:javascript
复制
d1 9e 93 c0 a2 94 59 10 66 44 af 17 ea c5 56 2c
d2 19 c0 a8 af f2 c7 71 94 6d 73 55 49 16 bd 9a
8d f4 d4 32 4e 57 55 f1 a0 56 7d b3 c5 be 4c 58
f9 56 47 0c 7f 50 91 01 02 21 a0 5b 7e 2f 19 92
64 00 e2 24 b8 b4 4e ce 59 a9 92 e6 d8 23 37 19
1a c3 d6 12 38 9f a6 79 f5 ca 3c 6b ab 85 51 45
18 95 76 df e5 5a f3 b7 0d b7 e3 e2 31 2c d0 fd

但是这并不能让我满意,因为在第一次检查之后,它会转到:verificat,但是我想要的是:如果所有这些都被验证了,那么它可以转到:验证。

如果出现一个新的( md5ttt.tmp将如下所示):

代码语言:javascript
复制
d1 9e 93 c0 a2 94 59 10 66 44 af 17 ea c5 56 2c
d2 19 c0 a8 af f2 c7 71 94 6d 73 55 49 16 bd 9a
8d f4 d4 32 4e 57 55 f1 a0 56 7d b3 c5 be 4c 58
f9 56 47 0c 7f 50 91 01 02 21 a0 5b 7e 2f 19 92
64 00 e2 24 b8 b4 4e ce 59 a9 92 e6 d8 23 37 19
1a c3 d6 12 38 9f a6 79 f5 ca 3c 6b ab 85 51 45
18 95 76 df e5 5a f3 b7 0d b7 e3 e2 31 2c d0 fd
2a 3b 87 kd 93 op oz n2 c7 bb k6 78 91 d9 9f c5
4d n4 83 d9 a0 kp 93 21 2h g8 l0 c1 fd d1 7d c2

注意有两个新哈希。如果它出现了一个新的哈希,它应该去:fals帮助请?:D

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-19 06:48:07

看起来这段代码是在循环中使用的。计算从文件md5ttt.tmp读取的行数,并计算成功的md5哈希值。在循环之后,比较这两个计数并检查是否相等。

代码语言:javascript
复制
rem Code before the loop
set "LineCount=0"
set "HashCount=0"

rem Code inside the loop
set /A LineCount+=1
if "!md2temp!"=="d1 9e 93 c0 a2 94 59 10 66 44 af 17 ea c5 56 2c" set /A HashCount+=1
if "!md2temp!"=="d2 19 c0 a8 af f2 c7 71 94 6d 73 55 49 16 bd 9a" set /A HashCount+=1
if "!md2temp!"=="8d f4 d4 32 4e 57 55 f1 a0 56 7d b3 c5 be 4c 58" set /A HashCount+=1
if "!md2temp!"=="f9 56 47 0c 7f 50 91 01 02 21 a0 5b 7e 2f 19 92" set /A HashCount+=1
if "!md2temp!"=="64 00 e2 24 b8 b4 4e ce 59 a9 92 e6 d8 23 37 19" set /A HashCount+=1
if "!md2temp!"=="1a c3 d6 12 38 9f a6 79 f5 ca 3c 6b ab 85 51 45" set /A HashCount+=1
if "!md2temp!"=="18 95 76 df e5 5a f3 b7 0d b7 e3 e2 31 2c d0 fd" set /A HashCount+=1

rem Code after the loop
if !LineCount! == !HashCount! goto verificat
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38451142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档