找回密码
 加入
搜索
查看: 2245|回复: 7

关于用AU3比较文件的问题

[复制链接]
发表于 2008-10-17 21:40:28 | 显示全部楼层 |阅读模式
有aaa.txt和bbb.txt两个文本,用cmd来比较比较两个文本是否相同,很简单:
echo n|comp aaa.txt bbb.txt |find "文件比较无误" && echo 文件相同 || echo 文件不相同
请问AU3里有类似cmd里的comp或者fc的函数吗?我看帮助里看了N遍都没发现。
如果没有,只能调用cmd来判断,那么如何将cmd输出的结果当作变量输出到AU3里?如将以上例子里的“echo 文件相同”或者“echo 文件不相同”变成一个变量赋值。即实现以下cmd的效果:
@echo off
echo n|comp aaa.txt bbb.txt |find "文件比较无误" && set qqq=文件相同 || set qqq=文件不相同
cls
echo %qqq%
pause
exit
请各位指教。
谢谢!!
发表于 2008-10-17 22:07:19 | 显示全部楼层
AU3里有字串比较函数,StringCompare
 楼主| 发表于 2008-10-17 22:29:13 | 显示全部楼层
看了StringCompare函数的帮助,如果要比较的话,是要逐行读出字符串,然后在进行比较,然后再读下一行,然后再比较,是这样的吧?可否一次读整个文本,然后再比较?
发表于 2008-10-17 22:48:46 | 显示全部楼层
用md5或者crc32来校验吧...
发表于 2009-7-10 13:11:43 | 显示全部楼层
能说的明白一点吗?急!!
发表于 2009-7-10 14:01:12 | 显示全部楼层
看了StringCompare函数的帮助,如果要比较的话,是要逐行读出字符串,然后在进行比较,然后再读下一行,然后再比较,是这样的吧?可否一次读整个文本,然后再比较?
rongcong005 发表于 2008-10-17 22:29

FileRead
从此前已打开的文本文件中读取指定数量的字符.

FileRead ( 文件名句柄 或者 "文件名" [, 数量] )


参数
文件句柄目标文件句柄,可由此前调用 FileOpen 函数的返回值获得。另外也可以直接使用目标文件名.
数量[可选参数]指定要读取字符的数量。默认读取整个文件


是可以实现楼主的整体对比的要求的
发表于 2009-7-12 13:48:13 | 显示全部楼层
读取cmd命令可以参考autoit里面自带的例子

; Demonstrates StdoutRead()
#include <Constants.au3>

Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
Wend

While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
Wend

MsgBox(0, "Debug", "Exiting...")
发表于 2009-8-18 16:44:15 | 显示全部楼层
逐行比较式比较稳妥的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 21:22 , Processed in 0.077703 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表