Avatar billede flyfish.dk Nybegynder
12. oktober 2003 - 20:02 Der er 2 kommentarer og
1 løsning

Finde filer på drev

Jeg sidder med et lille problem, jeg skal hurtig have lavet et lille script som søger min harddisk igennem for PST filer og senere kopier dem til et backup drev.

ligenu prøver jeg med at køre en dos Command via WHS.

-----Code ----
Function  Copyfiles(drive)
'drive indeholder c: & d: osv.
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run """cmd /K Dir/s "&drive&"\*.PST"""
Set oShell = Nothing
End Function
------Code ----
Min oshell.run køre ikke den command, som jeg har skrivet, kan nogle hjælpe mig her ?
Eller er der ikke en nemmere måde at søge ens drev igennem efter filer vis VBS / WHS ?

Hammer
Avatar billede Slettet bruger
12. oktober 2003 - 21:00 #1
Du kan søge efter filer ved at kombinere vbscripts filesystemobject og regular expressions:

Set args = WScript.Arguments

If args.Count <> 2 Then
    WScript.Echo "Wrong number of arguments"
    WScript.Echo "Usage: " & WScript.ScriptName & " <path> ""<pattern>"""
    WScript.Quit
End If

path = args(0)
pattern = args(1)

Set fso = createObject("Scripting.FileSystemObject")
Set root = fso.GetFolder(path)

Set regEx = New RegExp
regEx.Pattern = pattern
regEx.IgnoreCase = True

traverseFolders(root)

Function traverseFolders(root)
    searchFiles(root)
    For Each folder in root.SubFolders
        traverseFolders(folder)
    Next
End Function

Function searchFiles(root)
    For Each file in root.Files
        If regEx.Test(file.Name) Then
            WScript.Echo file.Path
        End If
    Next   
End Function

For at finde .PST filer på c-drevet kan du kører scriptet med

cscript find.vbs c:\ "\.PST$"

Hvor det sidste kan være et vilkårligt regulært udtryk
Avatar billede nmh Nybegynder
12. oktober 2003 - 21:23 #2
Selv om det er et VBscript, du efterspørger, så vil jeg lige vise, hvad man kan på "den gammeldags måde":

Hvis du blot vil have en liste over dine mst-filer kan du gøre således:

Hvis du i en kommandosession skriver
dir c:\*.mst >liste.txt /s
vil du få en fil liste.txt, som indeholder en liste over alle filer med efterbnavnet mst.

Hvis du skriver
xcopy c:\*.mst e:\bckup /s
nu vil bckup-kataloget indeholde alle filer med efternavnet mst. Ulempen er, at bckup ikke indeholder en liste af filer, med de ligger i underkataloger, på samme måde som på c-drevet.
Avatar billede flyfish.dk Nybegynder
12. oktober 2003 - 21:53 #3
Den gammeldags måde er den jeg bruger nu, men den er rigtig træls når man skal "kopier" filer ind på exchanger server for 20-300 personer..... og de ikke "bare" ligger i en mappe pr bruger.
Noget andet er at jeg skal ud og sotere imellem netwærks drev og alm fysisike drev..  hvilket er svært at gøre i dos...
for at gøre alt "nemmere" skal scriptet kunne køre på ALLE windows versioner altså også win9x...

Men mange tak for hjælpen JJUST får mine points.....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester