En passant le contenu du répertoire en une seule ligne à un exécutable Powershell
-
21-09-2019 - |
Question
J'ai un exécutable binaire qui prend une liste de chemins de fichiers comme arguments, par exemple.
C: \ Tool.exe C: \ Files \ Fichier1.txt C: \ Files \ FILE2.TXT
Je voudrais appeler cet outil de Powershell. La question est, comment puis-je obtenir la sortie get-childitem sur une seule ligne?
Si je lance:
ls C:. \ Files \ * txt | sélectionnez FullName
Je reçois un chemin par ligne. Comment puis-je concaténer les résultats?
La solution
Dans PowerShell 2.0, vous pouvez utiliser l'opérateur -join:
(ls C:\Files\*.txt | %{ $_.FullName }) -join ' '
Dans PowerShell 1.0, vous pouvez définir $OFS
, qui est utilisé pour combiner une séquence d'éléments quand ils sont utilisés comme une chaîne:
$ofs = ' '
"$(ls C:\Files\*.txt | %{ $_.FullName })"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow