rdw167 发表于 2011-7-9 02:41:07

一个关于远程读取ini文件并检查进程与相对应执行特定进程的脚本

$run1=IniRead("\\192.168.1.219\ini1$\set.ini","IE","start1","0")
If ProcessExists($run1) Then
        RunWait(@ComSpec & " /c " & 'sc config toolstarstart= auto', "", @SW_HIDE)       

RunWait(@ComSpec & " /c " & 'sc stop toolStar' , "", @SW_HIDE)
RunWait("E:\系统更新\开机命令\SrvToolStar.exe/autorun")

RunWait("E:\系统更新\开机命令\qq.exe")
   
EndIf

问题1,能否在同一个配置文件中的同一个关键字start1,中读取多个,关键词,并作出不同的判断,如,start1=qq.exe,start1=qq1.exe,start1=qq2.exe,等类似判断。如果不能实现,能有什么更加简便的方法实现吗。谢谢。

user3000 发表于 2011-7-9 03:34:51

本帖最后由 user3000 于 2011-7-9 03:53 编辑

按你的想法,应该把配置文件写成
”start1=qq.exe|qq1.exe|qq2.exe|MY.EXE"
代码是:$runstr=IniRead("\\192.168.1.219\ini1$\set.ini","IE","start1","0")
$run1=stringsplit($runstr,'|')
FOR $I = 1 TO $RUN1
IF ProcessExists($run1[$I]) THEN
SWITCH $RUN1[$I]
CASE 'QQ.EXE'
RunWait(@ComSpec & " /c " & 'sc config toolstarstart= auto', "", @SW_HIDE)      
RunWait(@ComSpec & " /c " & 'sc stop toolStar' , "", @SW_HIDE)
RunWait("E:\系统更新\开机命令\SrvToolStar.exe/autorun")
RunWait("E:\系统更新\开机命令\qq.exe")
CASE 'QQ1.EXE'
;...
CASE 'QQ2.EXE'
;...
CASE 'MY.EXE'
;...
ENDSWITCH
ENDIF
NEXT

user3000 发表于 2011-7-9 03:55:39

汗,还好怕误导别人,把代码复制到 Scite 里看了一下,
发现有中文输入法的符号等错误。。。

我要告诉全世界的人
我爱 Scite !
我离不开 Scite 了!
{:face (427):}

user3000 发表于 2011-7-9 04:22:01

随便转,看到 风行者 给别人的回复,跟你的要求很是相似,所以帮你贴过来了!
希望你能更深地体会循环语法的运用!#include <Array.au3>
While 1
      Local $PorcessArray = _SearchProcess("QQ.exe,360tray.exe,scite.exe")
      If IsArray($PorcessArray) Then _ArrayDisplay($PorcessArray)
      Sleep(1000)
WEnd

Func _SearchProcess($Names) ;_SearchProcess(进程列表)
      Local $Tmp, $s = 0
      Local $sp = StringSplit($Names, ",")
      $Array = ProcessList()
      For $i = 1 To $sp
                For $j = 1 To $Array
                        If StringLower($sp[$i]) == StringLower($Array[$j]) Then
                              $Tmp[$s] = $sp[$i]
                              $s += 1
                        EndIf
                Next
      Next
      If $s Then
                ReDim $Tmp[$s]
                Return $Tmp
      Else
                Return SetError(1, 0, 1)
      EndIf
EndFunc   ;==>_SearchProcess
页: [1]
查看完整版本: 一个关于远程读取ini文件并检查进程与相对应执行特定进程的脚本