for循环在脚本中的应用

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

批处理中用FOR循环实现windows补丁自动安装

测试程序

@ECHO OFF

REM 放在补丁目录下直接运行

@IF NOT EXIST 1 MKDIR 1 2 3 4

@FOR %%E IN (*.exe) DO @( (@FINDSTR UPDFILE %%E && @MOVE %%E 1) || (@FINDSTR _SFX_CAB_EXE_PACKAGE %%E && @MOVE %%E 2) || (@FINDSTR update.exe %%E && @MOVE %%E 3) || (@FINDSTR _SFX_CAB_EXE_PATH %%E && @MOVE %%E 4))

@echo 测试完毕

@IF not EXIST *.exe (goto OK) else (goto Detect)

:Detect

@FOR %%F IN (*.exe) DO @echo %%F 需要手动安装

@ECHO .

@ECHO .

@Pause

exit

:ok

@ECHO 所有补丁都可以自动安装

@echo 你的补丁已经被分别放在 目录 1 2 3 4 中。

@echo .

@PAUSE

exit (updated at 2006/09/12)

****** 主程序

@echo off

@cls

@TITLE XP 补丁无人职守智能安装程序安静版 __ BY SUN DaYan-YiFei

@echo XP 补丁无人职守智能安装程序安静版

@echo BY SUN DaYan-YiFei

@echo 适用补丁 98/2000 /XP/2003

@echo *

@ECHO *

@ECHO * 请确定把该程序放在你的补丁目录下,

@ECHO *

@ECHO * 开始执行程序, Press any key to start

@echo *

@pause

@if not exist backup MKDIR BACKUP

FOR %%E IN (*.exe) DO @((@FINDSTR UPDFILE %%E >null && @START /WAIT %%E /Q && @MOVE %%E BACKUP && @echo %%E Patched and Moved to Backup Directory …) || (@FINDSTR _SFX_CAB_EXE_PACKAGE %%E >null && @START /WAIT %%E /passive /norestart /o /n && @MOVE %%E BACKUP && @echo %%E Patched and Moved to Backup Directory …) || (@FINDSTR update.exe %%E >null && @START /WAIT %%E -n -o -z && @MOVE %%E BACKUP && @echo %%E Patched and Moved to Backup Directory …) || (@FINDSTR _SFX_CAB_EXE_PATH >null && @START /WAIT %%E /passive /norestart /o /n && @MOVE %%E BACKUP && @echo %%E Patched and Moved to Backup Directory …))

@ECHO ;;

@ECHO ;; OK ! 若补丁目录仍然有个别的补丁未能自动执行,请手动安装!

@PAUSE

@echo ;;========================================

@echo BY SUN YIFEI-DaYan

@echo 1:35 2006-4-25

@pause

@exit

将该批处理程序和补丁程序放在同一个目录下,直接运行

(注:已经在xp和2003下测试,该程序通用)

For在iptables中的应用

EXT_IF=”eth0″

INT_IF=”eth1″

EXT_IP=”" #公网IP

INT_IP=”" #内接口IP

SERVER_IP=”" #内部服务器IP

…….

FWD_TCP_PORT=”20 21 25 80 110″

FWD_UDP_PORT=”20 21 25 80 110″

……

for PORT in $TRUSTED_LOCAL_TCP_PORT; do

iptables -A INPUT -i $EXT_IF -p tcp –dport $PORT -m state –state NEW -j

ACCEPT

done

总结一下,适当的使用for可以大大增加程序的可伸缩性,例如对于for在shell中的应用,要想再屏蔽或者开放某个端口,仅仅只要将端口号放在开始定义的变量里面。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航