Gå til innhold

VBS til å hente filnavn på en fil i en mappe


Anbefalte innlegg

Hei

 

Jeg har ikke mye peiling på VB scripting, men tar det skrittet å spørre her om noen kan hjelpe meg.

 

Vi har akkurat installert en CD-brenner av denne typen på jobb. På denne er det en printer som skriver på CD-ene etter at de er brent.

 

Til denne printeren følger med med en CD-Designer software. I dette programmet er det ikke mulig å skrive hva som er innholdet på CD-en automatisk.

 

Vi har en fil som heter feks: CDProd1189.tar.gz. Denne filen ligger i en mappe. Denne filen øker stadig "i navn". CDProd1190.tar.gz, CDProd1191.tar.gz osv... Men det ligger alltid bare en fil der, for de gamle blir slettet.

 

Saken er den at det går an å bruke et VBS til å skrive informasjon på CD-platen. Så det jeg trenger er et VBS som finner ut hva filen som ligger under "\\Storm\Image\CDProd\ " heter. Og i tillegg skriver dette på platen. Altså får filnavnet som et slags output.

 

Noen som kan hjelpe? :innocent:

Lenke til kommentar
Videoannonse
Annonse

Nå har jeg ikke benyttet meg av dette programmet tidligere, så hvordan du har tenkt til å implementere VBScript-koden, er for meg litt uklart. Men, jeg regner med StdOut (utdata i form av pipes) er hva som trengs. Koden en må legge i en VBS-fil er som følger:

' * Dette programmet må kjøres gjennom CScrpt for at utdata skal fungere *

Dim oFileSystem, File, sFolder

 

' *Konfigurasjon*

sFolder = "\\Storm\Image\CDProd\" ' Mappen vi skal søke igjennom

 

' Anvender kommandolinjen til å definere mappen som skal brukes, såfremt vi har noe inndata.

If WScript.Arguments.Count > 0 Then

    sFolder = WScript.Arguments(0)

End If

 

' Lag filsystemobjekt

Set oFileSystem = CreateObject("Scripting.FileSystemObject")

 

' Returner filnavnet til alle filer i den angitte mappen

For Each File In oFileSystem.GetFolder(sFolder).Files

    WScript.StdOut.Write File.Name & vbCrLf

Next

Endret av aadnk
Lenke til kommentar

Mulig dette ble litt feil.

 

I CD Designer 7.0 så er det en mulighet for å få info i et tekstfelt på et CD Design ved hjelp av Visual Basic Script.

 

Det er en mulighet som heter Single-Line Expression, Mulit-Line Script og Event Control Scripts. Til hver av disse er det et tekstfelt der jeg kan skrive scriptet.

 

Når jeg skrev det scriptet du gav meg aadnk så kom det opp en feilmelding som lyder

[qoute=Feilmelding]Line 8: Qbject Required: 'Wscript'[/qoute]

Jeg skrev dette i tekstfeltet for Multi-Line Script.

 

Hvis jeg har gjort noe feil, rop ut.

 

Scriptet skal altså returnere et filnavn på filen som ligger i "\\Storm\IMAGE\CDProd\".

 

Det ligger alltid bare én fil der.

Lenke til kommentar

Jeg må medgi jeg har misforstått en smule hva du ønsket å utføre - når du nevnte VBScript, trodde jeg du mente å kjøre en VBS-fil gjennom CScript og returnere filbanen gjennom StdOut, ikke at det var via en integrert skripttolker i programmet (lik makroer i Word). Da benytter man som regel spesielle objekter og metoder/oppsett for å returnere data, noe som gjør at skriptet jeg gav deg ikke vil fungere.

 

Jeg skal se om jeg kan få tak i programmet og sjekke hvordan det gjøres.

Lenke til kommentar

Public Function GetFiles(path As String) As Collection
 Dim out As New Collection
 Dim strfile As String
 Do
   strfile = Dir(IIf(Mid$(path, Len(path), 1) = "\", Path, Path & "\") + "*.*")
   If strfile = "" Then Exit Do
   out.Add(strfile)
 Loop
 Set GetFiles = out
End Function

 

Noe slikt? vet ikke om det funker i Visual Basic For Applications...

 

edit: uff, jeg leser inlegg alt for dårlig for tiden :p

Endret av GeirGrusom
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...