vbscript - right - Verificar si una cadena contiene caracteres específicos usando el script VBS
vbscript replace (1)
Mi script está haciendo el siguiente punto:
- Recuperar todos mis archivos de carpetas seleccionados
- Clasifíquelos por fecha (desde el reciente hasta el anterior)
- Muéstrales en una ventana
Aquí está mi VBS Script (lo recupero aquí ):
Option Explicit
Const PathMDB = "C:/Users/C8461789/Desktop/test_script"
MsgBox TriRepertoire,,"Enumération " & PathMDB
''---lister les fichiers du répertoire ---
Function TriRepertoire()
Dim fso, fichier, fileItem
Dim i, imax, z, valeur, cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")
imax = 0
''début de l''énumération
For Each fichier In fso.GetFolder(PathMDB).Files
Set fileItem = fso.GetFile(fichier)
imax = imax + 1
ReDim Preserve Tableau(2, imax)
Tableau(1, imax) = Fichier.Name
Tableau(2, imax) = FileItem.DateLastModified
''---trier les fichiers par ordre décroissant de création ---
Do
Valeur = 0
For i = 1 To imax - 1
If InStr(Tableau(1,i), "average", vbTextCompare) > 0 Then
If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
For z = 1 To 2
Cible = Tableau(z, i)
Tableau(z, i) = Tableau(z, i + 1)
Tableau(z, i + 1) = Cible
Next
Valeur = 1
End If
End If
Next
Loop While Valeur = 1
Set fileItem = nothing
Next
''Affichage du résultat classé
For i = 1 To imax
''If IsNull(Tableau) Then
liste = liste &vbTab& Tableau(1, i) &vbCr
''End If
Next
TriRepertoire = liste
Set fso = nothing
End Function
Para filtrar por nombre mis archivos recuperados, me gustaría agregar la siguiente condición:
- Para cada nombre de archivo, si contiene "promedio", agregue el nombre del archivo a la tabla
- De lo contrario, no hacer nada
Intenté usar
Si InStr (Tableau (1, i), "promedio", vbTextCompare)> 0 Entonces
Está utilizando InStr
incorrectamente. Tu codigo:
InStr(Tableau(1,i), "average", vbTextCompare)
La firma de InStr
es:
InStr([start,]string1,string2[,compare])
Pero el problema aquí es que tiene dos parámetros opcionales, uno de ellos está en el frente, con una condición especial:
Opcional. Especifica la posición de inicio para cada búsqueda. La búsqueda comienza en la primera posición de personaje (1) por defecto. Este parámetro es obligatorio si se especifica la comparación
Entonces, como está utilizando el cuarto parámetro con el valor vbTextCompare
, también debe especificar el punto de inicio en el primer parámetro, que sería 1
(primer carácter) en su caso. Entonces, el código corregido es:
InStr(1, Tableau(1,i), "average", vbTextCompare)
El mensaje de error que ves básicamente se queja de que se espera que el primer parámetro sea un entero, pero le estás dando una cadena.
Ver documentos InStr .