关于用AU3比较文件的问题
有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
请各位指教。
谢谢!! AU3里有字串比较函数,StringCompare 看了StringCompare函数的帮助,如果要比较的话,是要逐行读出字符串,然后在进行比较,然后再读下一行,然后再比较,是这样的吧?可否一次读整个文本,然后再比较? 用md5或者crc32来校验吧... 能说的明白一点吗?急!! 看了StringCompare函数的帮助,如果要比较的话,是要逐行读出字符串,然后在进行比较,然后再读下一行,然后再比较,是这样的吧?可否一次读整个文本,然后再比较?
rongcong005 发表于 2008-10-17 22:29 http://www.autoitx.com/images/common/back.gif
FileRead
从此前已打开的文本文件中读取指定数量的字符.
FileRead ( 文件名句柄 或者 "文件名" [, 数量] )
参数
文件句柄目标文件句柄,可由此前调用 FileOpen 函数的返回值获得。另外也可以直接使用目标文件名.数量[可选参数]指定要读取字符的数量。默认读取整个文件
是可以实现楼主的整体对比的要求的 读取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...") 逐行比较式比较稳妥的
页:
[1]