2009-06-05 8 views
1

J'utilise l'extrait de code VBScript ci-dessous pour énumérer tous les fichiers dans mon c: \ Scripts \ dossier:Énumérer les fichiers sensibles à la casse dans VBScript?

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 

Malheureusement objFile.Name retourne le chemin dans tous les minuscules. Il est important pour moi de récupérer le cas de tous les noms de fichiers, c'est-à-dire NewFileOne.txt, ne devrait pas être retourné comme newfileone.txt.

Existe-t-il un moyen d'énumérer les fichiers avec sensibilité à la casse dans VBScript?

+0

Get it Joel, get it! –

Répondre

4

Si vous utilisez FileSystemObject, vous récupérerez des noms avec le cas conservé

Files 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 
0

solution de Mike est meilleur, mais est ici une alternative très sournoises:

Utilisation du shell exec exécutez la commande suivante:

dir c:\scripts /B>file.txt 

Maintenant "fichier.txt" contient le fichier répertorié avec le boîtier approprié. Désolé, c'est moche mais ça marche.

1

Contrairement à la propriété CIM_DataFile.Name, les propriétés FileName et Extension sont sensibles à la casse. Donc, s'il vous est nécessaire d'utiliser WMI, vous pouvez récupérer le nom de fichier et l'extension séparément:

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