|  | 
 
| bbq123bbq 初级用户
 
   
 
 
 积分 197
 发帖 77
 注册 2006-9-19
 状态 离线
 | 
| 『楼 主』:
 帮忙简化安装系统补丁P处理
 
使用 LLM 解释/回答一下 
 
 
for /f "delims=." %%i in (2.txt) do echo %%i >>3.txt && findstr /v/g:1.txt 3.txt >>4.txtfor /f %%j in (4.txt) do echo %%j.exe >>5.bat
 
 2.TXT为所有系统补丁号码
 KB898461.exe
 KB893803.exe
 KB900930.exe
 
 1.TXT为本机补丁号码
 KB898461
 KB893803
 
 先讲2.TXT内KB898461.EXE的后缀名.EXE去掉输出为2.txt for /f "delims=." %%i in (2.txt) do echo
 
 %%i >>3.txt
 
 对比1.TXT和3.TXT..将1.TXT和2.TXT内有的相同补丁号码去掉..输出4.TXT
 将4.TXT内补丁号码甜加后缀名输出5.BAT  for /f %%j in (4.txt) do echo %%j.exe /quiet
 
 /norestart /n >>5.bat
 在运行5.BAT安装系统补丁
 初步测试成功不过写的太长..请高手简化一下给点意见
 
 
 
 
 |  | 
|  2007-2-4 12:07 |  | 
|  | 
 
| zh159 金牌会员
 
       
 
 
 积分 3687
 发帖 1467
 注册 2005-8-8
 状态 离线
 |  | 
|  2007-2-4 12:16 |  | 
|  | 
 
| bbq123bbq 初级用户
 
   
 
 
 积分 197
 发帖 77
 注册 2006-9-19
 状态 离线
 | 
| 『第 3 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
我知道我没把临时文件删除...哪个好做所以我没做..我只做个大纲...还有个问题:的出5.BAT内容:KB893803.exe
 KB898461.exe
 KB900930.exe
 KB887797.exe
 KB885836.exe
 KB873339.exe
 KB888113.exe
 读取内容一行一行树着显示里面的内容,最好相隔2秒好给人知道需要安装那些系统补丁
 
 
 
 
 |  | 
|  2007-2-4 12:59 |  | 
|  | 
 
| 无奈何 荣誉版主
 
        
 
 
 
 积分 1338
 发帖 356
 注册 2005-7-15
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
RE bbq123bbq 
你写的代码真的挺简短的,不过有些凌乱,要我做的话可能会这样完成,可以参考一下。
 
 无奈何发表于    2007-02-04  01:42
 @echo off
for /f "delims=" %%i in (2.txt) do (
	findstr /x "%%~ni" 1.txt >nul 
	if ERRORLEVEL 1 (
		echo 安装 %%~ni
		%%i /quiet /norestart /n
		echo %%~ni>>1.txt
	)
)
 
 
 
 
 
 |  
                  |  ☆开始\运行 (WIN+R)☆
 %ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul
 
 
 |  | 
|  2007-2-4 14:47 |  | 
|  | 
 
| bbq123bbq 初级用户
 
   
 
 
 积分 197
 发帖 77
 注册 2006-9-19
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
比我的好..不过有些地方不懂? findstr /x 打印完全匹配的行 用来对比"%%~ni" 1.txt 出来的结果和1.TXT匹配的补丁号码 , if ERRORLEVEL 1 是什么意思..echo 安装 %%~ni 显示矿充2.TXT里的文件名 %%i /quiet /norestart /n 安装2.TXT里的补丁 整段运行为什么只安装1.TXT里缺少而2.TXT里有的补丁
 可以解释一下吗??我去掉@echo 看过运行过程还是不懂....
 
 
 
 
 |  | 
|  2007-2-4 16:04 |  | 
|  | 
 
| zerocq 中级用户
 
    
 
 
 积分 458
 发帖 196
 注册 2006-10-5
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
for /f "delims=." %a in (2.txt) do @findstr /x %a 1.txt||%.exe /quiet /norestart /n
 这样可以不,读取2.txt里的每一行在1.txt里查找,没找到就运行这个补丁???
 
 
 
 
 |  | 
|  2007-2-4 20:30 |  | 
|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
findstr /v/g:1.txt 3.txt 这句是不是对比1和3中的文件,把不同的输出到4中?
 
 
 
 
 |  | 
|  2007-2-4 22:14 |  | 
|  | 
 
| bbq123bbq 初级用户
 
   
 
 
 积分 197
 发帖 77
 注册 2006-9-19
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
终于明白if ERRORLEVEL 1 意思..IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的 if ERRORLEVEL 1 代表返回不成功 if ERRORLEVEL 0 代表返回成功... 
 
 
 
 |  | 
|  2007-2-5 08:01 |  | 
|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 |  | 
|  2007-2-5 09:34 |  |