Sign in to follow this  
Followers 0
JimC

Recursively look through deirectories and read section of files

6 posts in this topic

I am looking for the ability to recursively look down a directory structure for .inf files. read a section of the inf file to verify that files exist in that particular subdirectory. The problem I am having is I dont know how to do a search recursively identify the .inf file in that subdirectory and identify a section in the inf. I though you could use the inireadsection, but that function wont work because it looks for ini files. I have provided an example inf file. I am looking to identify the entries for the [sourceDisksFiles] section. I did present a question yesterday that was probably too long winded as I explained the whole process that I am trying to perform. Thank you in advance for any help you can provide in getting me started.

Share this post


Link to post
Share on other sites



First you will need a recursive file search function. There are all kinds:

http://www.autoitscript.com/forum/index.ph...filelisttoarray

Once you get your array created you will have to loop through element and read the file. This will be easy using the ini/inf file format. If your script finds what is needed, break the loop. Simple as that.

Share this post


Link to post
Share on other sites

Can you offer any tips on reading a section of the file since I cant use the "inireadsection" function. Thanks in advance for any help.

Share this post


Link to post
Share on other sites

Can you offer any tips on reading a section of the file since I cant use the "inireadsection" function. Thanks in advance for any help.

The inf file should be in the same format as ini, can you post an example?

Share this post


Link to post
Share on other sites

Here is a sample driver inf file. Thanks again for any help....

; Copyright © 2003-07 Intel Corporation

; ****************************************************************************

; ****************************************************************************

; ** Filename: iaStor.INF

; ** Revision: Version 7.8.0.1012

; ** Date: 09/29/2007

; ** Abstract: Windows* INF File for Intel® Matrix Storage Manager Driver

; ****************************************************************************

; ****************************************************************************

[version]

CatalogFile=iaStor.cat

Signature="$WINDOWS NT$"

Class=SCSIAdapter

ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}

Provider=%INTEL%

DriverVer=09/29/2007,7.8.0.1012

[DestinationDirs]

DefaultDestDir = 12 ; DIRID_DRIVERS

CopyFullPort = 12;

[CopyFullPort]

iaStor.sys

[sourceDisksNames]

1 = %DiskName%,,,

[sourceDisksFiles]

iaStor.sys= 1

[ControlFlags]

ExcludeFromSelect=PCI\VEN_8086&DEV_2682&CC_0104

ExcludeFromSelect=PCI\VEN_8086&DEV_27C3&CC_0104

ExcludeFromSelect=PCI\VEN_8086&DEV_27C6&CC_0104

ExcludeFromSelect=PCI\VEN_8086&DEV_2822&CC_0104

ExcludeFromSelect=PCI\VEN_8086&DEV_282A&CC_0104

[Manufacturer]

%INTEL%=INTEL_HDC,ntamd64

[iNTEL_HDC]

; ESB2

%PCI\VEN_8086&DEV_2682&CC_0104.DeviceDesc% = iaStor_Inst_RAID, PCI\VEN_8086&DEV_2682&CC_0104

; ICH7R/DH - 82801GR/GH

%PCI\VEN_8086&DEV_27C3&CC_0104.DeviceDesc% = iaStor_Inst_RAID, PCI\VEN_8086&DEV_27C3&CC_0104

; ICH7MR/DH - 82801GHM

%PCI\VEN_8086&DEV_27C6&CC_0104.DeviceDesc% = iaStor_mobl_Inst_RAID, PCI\VEN_8086&DEV_27C6&CC_0104

; ICH8R

%PCI\VEN_8086&DEV_2822&CC_0104.DeviceDesc% = iaStor_Inst_RAID, PCI\VEN_8086&DEV_2822&CC_0104

; ICH8M-E

%PCI\VEN_8086&DEV_282A&CC_0104.DeviceDesc% = iaStor_mobl_Inst_RAID, PCI\VEN_8086&DEV_282A&CC_0104

[iNTEL_HDC.ntamd64]

; ESB2

%PCI\VEN_8086&DEV_2682&CC_0104.DeviceDesc% = iaStor_Inst_RAID, PCI\VEN_8086&DEV_2682&CC_0104

; ICH7R/DH - 82801GR/GH

%PCI\VEN_8086&DEV_27C3&CC_0104.DeviceDesc% = iaStor_Inst_RAID, PCI\VEN_8086&DEV_27C3&CC_0104

; ICH7MR/DH - 82801GHM

%PCI\VEN_8086&DEV_27C6&CC_0104.DeviceDesc% = iaStor_mobl_Inst_RAID, PCI\VEN_8086&DEV_27C6&CC_0104

; ICH8R

%PCI\VEN_8086&DEV_2822&CC_0104.DeviceDesc% = iaStor_Inst_RAID, PCI\VEN_8086&DEV_2822&CC_0104

; ICH8M-E

%PCI\VEN_8086&DEV_282A&CC_0104.DeviceDesc% = iaStor_mobl_Inst_RAID, PCI\VEN_8086&DEV_282A&CC_0104

;****************************************************

[iaStor_Inst_RAID]

AddReg = iaStor_Temp_parameters_AddReg

CopyFiles=CopyFullPort

FeatureScore=0x80

[iaStor_mobl_Inst_RAID]

AddReg = iaStor_Temp_parameters_AddReg

CopyFiles=CopyFullPort

FeatureScore=0x80

[iaStor_Inst_RAID.HW]

AddReg = iaStorSecurity.AddReg

[iaStor_mobl_Inst_RAID.HW]

AddReg = iaStorSecurity.AddReg

[iaStorSecurity.AddReg]

HKR,,Security,,"D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFW;;;BU)"

[iaStor_Temp_parameters_AddReg]

[iaStor_Inst_RAID.Services]

AddService = iaStor, %SPSVCINST_ASSOCSERVICE%, iaStor_Service_Inst, iaStor_EventLog_Inst

[iaStor_mobl_Inst_RAID.Services]

AddService = iaStor, %SPSVCINST_ASSOCSERVICE%, iaStor_mobl_Service_Inst, iaStor_EventLog_Inst

[iaStor_Service_Inst]

DisplayName = %*PNP0600.DeviceDesc%

ServiceType = %SERVICE_KERNEL_DRIVER%

StartType = %SERVICE_BOOT_START%

ErrorControl = %SERVICE_ERROR_NORMAL%

ServiceBinary = %12%\iaStor.sys

LoadOrderGroup = SCSI Miniport

AddReg = iaStor_parameters_AddReg

[iaStor_mobl_Service_Inst]

DisplayName = %*PNP0600.DeviceDesc%

ServiceType = %SERVICE_KERNEL_DRIVER%

StartType = %SERVICE_BOOT_START%

ErrorControl = %SERVICE_ERROR_NORMAL%

ServiceBinary = %12%\iaStor.sys

LoadOrderGroup = SCSI Miniport

AddReg = iaStor_mobl_parameters_AddReg

[iaStor_parameters_AddReg]

HKR,,Tag,%REG_DWORD%,25

HKR,Parameters,queuePriorityEnable,%REG_DWORD%,0

HKR,Parameters,BusType,0x00010001,0x0000008

HKR,Parameters\Port0,%AN%,0x00010001,0

HKR,Parameters\Port0,%LPM%,0x00010001,0

HKR,Parameters\Port0,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port0,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port0,%GTF%,0x00010001,0

HKR,Parameters\Port0,%DIPM%,0x00010001,0

HKR,Parameters\Port1,%AN%,0x00010001,0

HKR,Parameters\Port1,%LPM%,0x00010001,0

HKR,Parameters\Port1,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port1,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port1,%GTF%,0x00010001,0

HKR,Parameters\Port1,%DIPM%,0x00010001,0

HKR,Parameters\Port2,%AN%,0x00010001,0

HKR,Parameters\Port2,%LPM%,0x00010001,0

HKR,Parameters\Port2,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port2,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port2,%GTF%,0x00010001,0

HKR,Parameters\Port2,%DIPM%,0x00010001,0

HKR,Parameters\Port3,%AN%,0x00010001,0

HKR,Parameters\Port3,%LPM%,0x00010001,0

HKR,Parameters\Port3,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port3,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port3,%GTF%,0x00010001,0

HKR,Parameters\Port3,%DIPM%,0x00010001,0

HKR,Parameters\Port4,%AN%,0x00010001,0

HKR,Parameters\Port4,%LPM%,0x00010001,0

HKR,Parameters\Port4,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port4,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port4,%GTF%,0x00010001,0

HKR,Parameters\Port4,%DIPM%,0x00010001,0

HKR,Parameters\Port5,%AN%,0x00010001,0

HKR,Parameters\Port5,%LPM%,0x00010001,0

HKR,Parameters\Port5,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port5,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port5,%GTF%,0x00010001,0

HKR,Parameters\Port5,%DIPM%,0x00010001,0

[iaStor_mobl_parameters_AddReg]

HKR,,Tag,%REG_DWORD%,25

HKR,Parameters,queuePriorityEnable,%REG_DWORD%,0

HKR,Parameters,BusType,0x00010001,0x0000008

HKR,Parameters\Port0,%AN%,0x00010001,0

HKR,Parameters\Port0,%LPM%,0x00010001,1

HKR,Parameters\Port0,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port0,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port0,%GTF%,0x00010001,0

HKR,Parameters\Port0,%DIPM%,0x00010001,1

HKR,Parameters\Port1,%AN%,0x00010001,0

HKR,Parameters\Port1,%LPM%,0x00010001,1

HKR,Parameters\Port1,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port1,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port1,%GTF%,0x00010001,0

HKR,Parameters\Port1,%DIPM%,0x00010001,1

HKR,Parameters\Port2,%AN%,0x00010001,0

HKR,Parameters\Port2,%LPM%,0x00010001,1

HKR,Parameters\Port2,%LPMSTATE%,0x00010001,0

HKR,Parameters\Port2,%LPMDSTATE%,0x00010001,1

HKR,Parameters\Port2,%GTF%,0x00010001,0

HKR,Parameters\Port2,%DIPM%,0x00010001,1

[iaStor_EventLog_Inst]

AddReg = iaStor_EventLog_AddReg

[iaStor_EventLog_AddReg]

HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\iaStor.sys"

HKR,,TypesSupported,%REG_DWORD%,7

;********************************************************

; Extra Registry Entries

[strings]

DiskName = "Intel Matrix Storage Manager Driver"

*PNP0600.DeviceDesc = "Intel RAID Controller"

PCI\VEN_8086&DEV_2682&CC_0104.DeviceDesc = "Intel® 631xESB/632xESB SATA RAID Controller"

PCI\VEN_8086&DEV_27C3&CC_0104.DeviceDesc = "Intel® 82801GR/GH SATA RAID Controller"

PCI\VEN_8086&DEV_27C6&CC_0104.DeviceDesc = "Intel® 82801GHM SATA RAID Controller"

PCI\VEN_8086&DEV_2822&CC_0104.DeviceDesc = "Intel® ICH8R/ICH9R SATA RAID Controller"

PCI\VEN_8086&DEV_282A&CC_0104.DeviceDesc = "Intel® 82801HEM SATA RAID Controller"

INTEL="Intel"

AN="AN"

LPM="LPM"

LPMSTATE="LPMSTATE"

LPMDSTATE="LPMDSTATE"

GTF="GTF"

DIPM="DIPM"

;*******************************************

;Handy macro substitutions (non-localizable)

SPSVCINST_ASSOCSERVICE = 0x00000002

SERVICE_KERNEL_DRIVER = 1

SERVICE_BOOT_START = 0

SERVICE_ERROR_NORMAL = 1

REG_EXPAND_SZ = 0x00020000

REG_DWORD = 0x00010001

Share this post


Link to post
Share on other sites

IniRead() should work, just use the filename with ".inf"

example from help (i replaced ini with inf )

$var = IniRead("C:\Temp\myfile.inf", "SourceDisksFiles", "iaStor.sys", "NotFound")
MsgBox(4096, "Result", $var)

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0