中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]批处理问题,IF不会用 上一主题 | 下一主题
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『楼 主』:  [求助]批处理问题,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 ]

2008-11-1 23:56
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

如果你的问题仅仅在于如何使用if
请给出你如何实现下面两个操作:
1。ctrl+c复制内容提取文字到a.txt
2。对比a.txt和b.txt



2008-11-2 10:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 3 楼』:  

@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 ]

2008-11-2 12:56
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  


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




2008-11-2 15:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 5 楼』:  



  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

为什么比什么都说相同啊

2008-11-2 16:03
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  



  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
不同





2008-11-2 16:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: