一、虽是初见却似曾相识
WinDiff是windows2000支持工具中的一个对文件进行比较的工具。主要用来比较ASCII的文件,最显著的用途是用来比较程序文件的源代码。假如,你的A:盘上有一个文件,它原来是从C:盘拷贝而来的。由于某种原因,你怀疑A:盘上的文件可能出现了问题,若确保这时候C:盘上的文件绝无问题,就可以将A:盘上的文件与C:盘上的文件用WinDiff进行比较。你要对dos命令熟悉的话,就一定知道Comp命令或FC命令。其实,WinDiff从作用上说,就相当于上述的dos命令,只不这个是windows版本而且功能更强了。所以,从功能上说:该工具虽是初见却似曾相识。
也像支持工具中的某些程序一样,WinDiff使用两种界面都可以工作:即命令行界面和图形界面。但也有与以前那些两种版本都具备的工具有不同之处:即在命令行中启动WinDiff之后,也会出现图形界面。我实际验证了一下,输出结果与Windows的工作界面一致。
命令行可以在命令控制台--CMD窗口中使用,在CMD下工作,最主要的优点是占用系统资源很少,能适应于对资源限制严格的环境;图形界面的程序可以在windows2000中直接使用,两者实际是一样的。另一个问题是取得在线帮助,我们很习惯于"命令/?"的方式,有了这一特殊性,在CMD窗口内,你再像以前的命令行程序那样,用/?来取得帮助时,结果不是字符界面。
而是如上面的屏幕截图。虽是图形,但也起到了在线帮助的作用。二、介绍命令行
WinDiff 使用命令行的详细语法如下:
windiff path1 [path2] [-D] [-O] [-N name] [-S [options] savefile] [-F [options] comp_savefile]
参数以及说明:
path1 path2
进行比较的文件路径。
-D
只在一个目录内进行比较。
-O
摘要显示比较结果。
-N name
这个参数用来在文件比较结束之后发出(比较结果的)通知。name 是用网络发送通知时的文件名称。
-S options
保存所有文件列表的选项,具体的选项开关可以参考下面的字符:
-s: 比较在同一路径中的两个文件。
-l: 只比较第一个路径中的文件(位于最左边的一个)。
-r: 只比较第二个路径中的文件(位于最右边的一个)。
-d: 比较位于不同路径中的两个文件。
savefile
用来指定写入比较结果的文件名字
-F options
保存(结果)文件的可使用选项如下:
-i: 在两个路径中保存相同的文件。
-l: 仅在第一个文件所在的路径保存文件。
-r: 仅在第二个文件所在的路径中保存文件。
-f: 仅保存左移文件。
-g: 仅保存右移移文件。
-s: 仅保存类似与左边的文件。
-a: 仅保存类似与右边的文件。
这里的左边和右边是指相比较的两个文件而言的,例如比较的两个文件是:filename1 filename2,则filename1就是左边, filename2就是右边。
comp_savefile
所得的比较结果需要保存在一个文件中,savefile 就是这个文件名称。
为比较结果中的不同项目,可使用的背景颜色选择如下:等号左边是颜色,右边是对应于该颜色的项目。
red background = left file
yellow background = right file
blue text = moved line
black text = everything else
由于不论在CMD命令控制台中还是直接在windows2000中启动WinDiff,出现的都是图形的界面,所以,下面介绍命令行的部分提到菜单等名词是正常的。对于使用WinDiff的命令行进行文件比较,主要掌握的原则是:
1. 调用WinDiff,但没有指定参与比较的文件的路径path1 path2时,可以以鼠标从File菜单中点击Compare Files或 Compare Directories 来指定用来比较的文件或目录。
2. 调用WinDiff,仅明确指出了位于路径path1中的文件。并未指定path2的文件名称,则WinDiff将拿当前目录中的与已经指定文件同名的文件进行比较。
3. 仿照上面,调用WinDiff,仅明确指出了path1的目录路径。并未指定path2的的目录,则WinDiff将拿当前目录中的文件与已经指定的目录文件进行比较。
4. 调用WinDiff,明确指出了位于路径path1和 path2中的文件名称和路径, WinDiff将对这两个文件进行比较。
仿照上面一步,调用WinDiff,明确指出了位于路径path1和 path2目录, WinDiff将对这两个目录中的文件进行比较。
由于命令行启动之后仍然显示图形界面,所以,这些参数的实际用处不是很大。要从实用性和方便性两下权衡对WinDiff的操作,应当学会掌握图形界面下的文件比较的操作。这些,我们将留在下一次介绍。