Frage

Ich bin mit den folgenden VBScript-Code-Schnipseln alle Dateien in meinem c aufzuzählen: \ Scripts \ Ordner:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colFiles = objWMIService. _
   ExecQuery("Select * from CIM_DataFile where Path = '\\Scripts\\'")

For Each objFile in colFiles
    Wscript.Echo objFile.Name 
Next

Leider objFile.Name gibt den Pfad in allen Klein. Es ist mir wichtig, den Fall aller Dateinamen abzurufen, das heißt NewFileOne.txt, sollte nicht als newfileone.txt zurückgegeben werden.

Gibt es eine Möglichkeit, um Dateien mit Groß- und Klein in VBScript aufzuzählen?

War es hilfreich?

Lösung

Wenn Sie das Filesystem verwenden, werden Sie den Namen mit dem Fall erhalten zurück

Dateien Collection (MSDN)

dim objFSO, path, fldr, f, msg
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set fldr = objFSO.GetFolder("C:\Scripts")

For Each f in fldr.Files
    MsgBox f.name
Next

Andere Tipps

Im Gegensatz zu der CIM_DataFile.Name Eigenschaft, die FileName und Extension Eigenschaften sind Groß- und Kleinschreibung. Also, wenn es notwendig ist, für Sie WMI zu verwenden, können Sie die Dateinamen und Erweiterung abrufen getrennt:

WScript.Echo objFile.FileName & "." & objFile.Extension

Mike Lösung ist besser, aber hier ist eine sehr UGLY Alternative:

Mit der Shell exec dem folgenden Befehl ausführen:

dir c:\scripts /B>file.txt 

"file.txt" enthält die Datei mit der richtigen Gehäuse aufgeführt.

Sorry, es ist hässlich, aber funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top