Board logo

标题: [求助]批处理问题,IF不会用 [打印本页]

作者: sea1112     时间: 2008-11-1 23:56    标题: [求助]批处理问题,IF不会用

不停的对比两个文件后做工作
第一次ctrl+c复制内容提取文字到a.txt后,COPY a.txt b.txt
第二次ctrl+c复制内容提取文字到a.txt后,对比a.txt和b.txt

如果内容是一样的就返回,不一样就echo 新内容

[ Last edited by sea1112 on 2008-11-2 at 13:47 ]
作者: HAT     时间: 2008-11-2 10:31
如果你的问题仅仅在于如何使用if
请给出你如何实现下面两个操作:
1。ctrl+c复制内容提取文字到a.txt
2。对比a.txt和b.txt
作者: sea1112     时间: 2008-11-2 12:56
@echo off
::提取ctrl+c里的内容到变量
:ag
@echo WScript.StdOut.Write(new ActiveXObject('htmlfile').parentWindow.clipboardData.getData('text'))> tmp.js 2>nul
@for /f "delims=" %%a in ('cscript //Nologo tmp.js') do @set ClipboardText=%%a >nul 2>nul
@del tmp.js /f /q >nul 2>nul
::把ctrl+c内容与123.txt文件内容对比后提取123.txt里与变量相关的内容
findstr %ClipboardText% 123.txt>321.txt
::通过copy文件后做前后内容的对比
copy 321.txt 3721.txt
::以下就是对比不会写,帮助写写内容
::------------------------------------------------
::如果321.txt和3721.txt内容相就回到ag[不再用vbs显示相关内容,内容只显示一次]

::-------------------------------------------------
::用vbs显示相关内容
for /f %%a in (321.txt) do set ts=%%a
echo MsgBox("%ts%")>tx.vbs
start tx.vbs
ping -n 5 127.1>nul
goto ag

ctrl+c 内容是"与发动机曲轴相连的是"
123.txt 内容是
第1题:与发动机曲轴相连的是( ),和变速器输入轴相连的是涡轮,导轮则布置在它们之间,
答案:、泵轮
第2题:( )接受发动机的动力,使车辆运动,并保证车辆正常行驶。
答案:、底盘
第3题:未来叉车将广泛采用( )。发动机尾气催化、净化技术的发展将有效降低有害气体和微粒的排放。
答案:、电子燃烧喷射和共轨技术
第4题:除个别标志外,颜色为( ),红圈,红杠、黑图案的标志是禁令标志。
答案:、白底

这个程序工作是:
不停监控ctrl+c的内容后,与文件123.txt内容对比提取相关内容做变量,用vbs显示出来相关内容。
要求:只显示一次,不是不停显示。

我不会写if,请求帮助
我是批处理新手,能精简的就写写给学习学习。

[ Last edited by sea1112 on 2008-11-2 at 13:17 ]
作者: HAT     时间: 2008-11-2 15:00

@echo off
::比较
fc a.txt b.txt>nul
::判断
if errorlevel 0 (
  echo 相同
) else (
  echo 不同
)
pause

作者: sea1112     时间: 2008-11-2 16:03


  Quote:
Originally posted by HAT at 2008-11-2 03:00 PM:
@echo off
::比较
fc a.txt b.txt>nul
::判断
if errorlevel 0 (
  echo 相同
) else (
  echo 不同
)
pause

为什么比什么都说相同啊
作者: HAT     时间: 2008-11-2 16:47


  Quote:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Test>type a.txt
aaa

C:\Test>type b.txt
bbb

C:\Test>type test.bat
@echo off
::比较
fc a.txt b.txt>nul
::判断
if %errorlevel%==0 (
  echo 相同
) else (
  echo 不同
)

C:\Test>test.bat
不同