Caracteres comodin vbs

Iniciado por moikano→@, 22 Junio 2010, 02:54 AM

0 Miembros y 1 Visitante están viendo este tema.

moikano→@

Hola de nuevo.
vengo con una duda que me a surgido llamando a un objeto:

Código (vb) [Seleccionar]
Set fso = CreateObject("Scripting.FileSystemObject")                       'busca los archivos de texto
    comp = fso.FileExists ("*.txt")


el caso es que así no sirve, necesito que al encontrar cualquier fichero con extensión .txt me de el valor true en la variable.

gracias de ante mano  :)

machio86

Mira a ver si te sirve algo así:


sWQL = "SELECT * FROM cim_datafile WHERE Drive='" & drive & "' AND FileName = '" & nombre & "' AND Extension= '"& extension &"'"
For Each f In GetObject("winmgmts:").execquery(sWQL)
ficheros=ficheros+VbCrLf+f.Drive&f.Path&f.FileName&"."&f.Extension
Next
Wscript.Echo ficheros


Para ti yo creo que unicamente necesitarías especificar el campo extension

Un saludo

moikano→@

gracias por contestar. He probado el codigo, pero no acabo de entenderlo muy bien y por eso creo que me da error o no es lo que encaja bien en el script. Si podrias explicarme que hace exactamente te lo agradeceria. :)

Pongo un trozo mas de codigo por si sirviera de ayuda.

Set objshell = createobject("wscript.shell")                'para ubicarse en el escritorio
Escritorio = objshell.specialfolders("Desktop")                            'para ubicarse en el escritorio
Set fso = CreateObject("Scripting.FileSystemObject")                       'busca los archivos de texto
     comp = fso.FileExists ("*.txt")                                       'busca los archivos de texto
      if comp = true then                                                  'si es verdadero crea la carpeta

El caso es que si el objeto file exit da verdadero crea la carpeta, sino no.

leogtz

Cita de: machio86 en 22 Junio 2010, 12:35 PM
Mira a ver si te sirve algo así:


sWQL = "SELECT * FROM cim_datafile WHERE Drive='" & drive & "' AND FileName = '" & nombre & "' AND Extension= '"& extension &"'"
For Each f In GetObject("winmgmts:").execquery(sWQL)
ficheros=ficheros+VbCrLf+f.Drive&f.Path&f.FileName&"."&f.Extension
Next
Wscript.Echo ficheros


Para ti yo creo que unicamente necesitarías especificar el campo extension

Un saludo

¿Qué tiene que ver con la duda del mensaje?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

machio86

#4
Como que qué tiene que ver con la duda del mensaje? xD

Si antes del código pones

extension="txt"


Y la consulta la dejas en
sWQL = "SELECT * FROM cim_datafile WHERE Extension= '"& extension &"'"

Te saca los txt, que creo que es lo que quería xD evidentemetne habría q modificarlo un poco, ponerle un If para q mire si ha encontrado alguno y en ese caso dar la salida que él quiere etc etc , lo que pasa que si es en una carpeta concreta supongo que se podría listar el contenido de la carpeta y con una expresion regular buscar los que tengan extensión .txt

Novlucker

http://msdn.microsoft.com/en-us/library/x23stk5t%28VS.85%29.aspx
CitarWildcard characters (*, ?, and so on) are not supported.

La primera solución, la de usar WMI para hacer el trabajo me gusta, porque se aprovecha el "poder" de la sentencia WQL y queda un código limpio :P

Sino se puede usar alternativas "artesanales"

Código (vb) [Seleccionar]
Msgbox txt("C:\Carpetaejemplo", "txt")

Function txt(Carpeta, Extension)
txt = False

Set objfso = CreateObject("scripting.filesystemobject")
Set oFolder = objfso.getfolder(Carpeta)
Set oFiles = oFolder.files

For each f in oFiles
if(lcase(right(f.path,3))) = lcase(Extension) then
txt = True
exit Function
end if
Next

End Function


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein