Find kan finde en navngivet fil med udgangspunkt i en angivet sti.
Programmet startes med en bat-fil, find.bat, som kræver to parametre:
sti filnavn |
hvor søgningen skal starte navnet på den søgte fil |
- fx giver følgende parametre det viste resultat:
| >find c:\programmer Normal.dot Normal.dot blev fundet i C:\Programmer\Microsoft Office\Skabeloner |
find.bat har dette indhold:
@echo off cscript //nologo find.vbs %1 %2 |
find.vbs har dette indhold:
set args = wscript.arguments
if args.count<>2 then
we "find kræver to parametre: sti og filnavn - fx:"
we ">find c:\ test.txt"
else
sti = args(0)
fil = args(1)
Set fs = CreateObject("Scripting.FileSystemObject")
found = false
search
set fs = nothing
end if
'-------------------------
sub we(s)
wscript.echo s
end sub
sub search()
Set gf = fs.GetFolder(sti)
set fc = gf.files
for each f in fc
if f.name = fil then
we fil & " blev fundet i " & sti
found = true
exit for
end if
next
if not found then
Set sf = gf.SubFolders
For Each f in sf
sti = f.path
search
if found then exit for
Next
end if
end sub
|
Bemærk, at rutinen search() benytter rekursion - dvs. den kalder sig
selv for at fortsætte søgningen i den mappe, som variablen sti angiver. I den
aktuelle mappe bliver alle filnavne (f.name) sammenlignet med det søgte filnavn
(fil). Hvis de er ens, er filen fundet, hvorefter programmet gør to ting:
- udskriver en meddelelse om, hvor filen blev fundet
- sætter variablen found = true og afslutter søgningen i den aktuelle mappe.
Sålænge found er false, fortsættes søgningen med search() rekursivt i undermapper - indtil filen er fundet.