Pregunta

Estoy utilizando el siguiente fragmento de código VBScript para enumerar todos los archivos en mi c: \ Scripts \ carpeta:

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

Desafortunadamente objFile.Name devuelve la ruta de todo en minúsculas. Es importante para mí para recuperar el caso de todos los nombres de archivo, es decir, NewFileOne.txt, no debe ser devuelto como newfileone.txt.

¿Hay una manera de enumerar los archivos con mayúsculas y minúsculas en VBScript?

¿Fue útil?

Solución

Si se utiliza el FileSystemObject, que se pondrá en contacto con el caso nombres conservados

archivos de colección (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

Otros consejos

A diferencia de la propiedad CIM_DataFile.Name, las propiedades FileName y Extension mayúsculas y minúsculas. Por lo tanto, si es necesario, para que pueda utilizar WMI, se puede recuperar el nombre de archivo y la extensión por separado:

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

La solución de Mike es mejor, pero aquí es una alternativa muy FEO:

Uso de la exec shell ejecutar el comando siguiente:

dir c:\scripts /B>file.txt 

Ahora "archivo.txt" contiene el archivo que aparece con carcasa adecuada.

Lo siento, es feo, pero funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top