Powershell à l'aide de caractères génériques à la recherche pour le nom de fichier
Je suis en train de faire un script PowerShell qui va chercher un dossier pour un nom de fichier qui contient un certain fichier masque. Tous les fichiers dans le dossier de format comme *yyyyMd*.txt
.
J'ai fait un script:
[String]$date = $(get-date -format yyyyMd)
$date1 = $date.ToString
Get-ChildItem C:\Users\pelam\Desktop\DOM | Where-Object {$_.Name -like '*$date1*'}
Mais cela ne semble pas fonctionner..
Peut aider quelqu'un? Il semble que le problème est que la variable de date n'est pas correcte parce que quand je code quelque chose comme ci-dessous, il travaille:
Get-ChildItem C:\Users\pelam\Desktop\DOM | Where-Object {$_.Name -like '*20141013*'}
Les guillemets simples sont à l'origine de ça pour essayer de faire correspondre le litre chaîne '$date1'. L'utilisation des guillemets pour permettre l'expansion des variables dans la chaîne.
Ou mieux encore, ne pas citer une référence à une variable qui est déjà une chaîne de caractères par exemple
Merci les gars! Il a travaillé! J'ai eu ot d'utiliser des guillemets au lieu d'une seule..
Utiliser des guillemets à l'intérieur de guillemets doubles ("'$date1'") si $date1 pourrait contenir des espaces.
Ou mieux encore, ne pas citer une référence à une variable qui est déjà une chaîne de caractères par exemple
... | Where-Object {$_.Name -like $date1}
🙂Merci les gars! Il a travaillé! J'ai eu ot d'utiliser des guillemets au lieu d'une seule..
Utiliser des guillemets à l'intérieur de guillemets doubles ("'$date1'") si $date1 pourrait contenir des espaces.
OriginalL'auteur Phil E | 2014-10-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplifier cette par juste en utilisant les regex avec la
-match
opérateur:}
Et si vous êtes sur le V3 ou supérieur, vous pouvez simplifier:
OK, je suis un idiot aujourd'hui. La mise à jour répondre de travail et la nature de
-match
et de la regex motif, la date de chaîne n'importe où dans le nom de fichier.OriginalL'auteur Keith Hill