J'ai la commande suivante: pour effacer certains fichiers dans le dossier de construction d'une solution VS. J'utilise le commutateur Verbose afin que je puisse voir quels fichiers sont supprimés. Ça marche bien, mais la sortie est trop verbeuse: p> J'ai juste besoin de voir quelque chose comme ça: p> i Sachez que je peux le faire avec une déclaration de forach et une commande d'hôte écriture, mais je crois que cela peut être fait avec une pipeline ou quelque chose. Des idées? P> p>
4 Réponses :
Pour pouvoir modifier le message dont vous avez besoin d'abord pour cath la sortie qui n'est pas aussi facile. Vous pouvez vous référer à la réponse sur cette page: PowerShell Invoke-SQLCMD Capture Verbose Sortie attraper la sortie. À partir de là, vous pouvez modifier le message et le montrer dans votre format, mais pourestiner des options vous facilitent l'air p>
Utiliser as @ user978511 pointus, à l'aide de la sortie verbeuse est plus compliqué: p> foreach-objet code> est assez simple: $ps = [PowerShell]::Create()
$null = $ps.AddScript(@'
Get-ChildItem $build_path `
-Include *.bak, *.orig, *.txt, *.chirp.config `
-Recurse | Remove-Item -Verbose
'@)
$ps.Invoke()
$ps.Streams.Verbose -replace '(.*)Target "(.*)"(.*)','Removing File $2'
FullName code> est requis. Supprimer-item $ _. FullName; code> fait effectivement le travail sans exception.
in PowerShell 3.0 Vous pouvez écrire le flux verbose dans le flux de sortie (E.g 4> et 1), puis remplacer le message suivant:
Get-ChildItem $build_path `
-Include *.bak, *.orig, *.txt, *.chirp.config `
-Recurse | Remove-Item -Verbose 4>&1 | Foreach-Object{ `
Write-Host ($_.Message -replace'(.*)Target "(.*)"(.*)','Removing File $2') -ForegroundColor Yellow
}
Ceci est quelques années trop tard, mais cela pourrait aider quelqu'un d'autre qui trébuche sur ceci comme je l'ai fait, je vais donc la fournir quand même.
Je voudrais essayer la suppression du fichier, puis signaler le succès ou l'échec. Voir ci-dessous: p>
| Tee-Object -FilePath $your_log_file -Append