7
votes

Formater la sortie verbose d'une commande supprimer-item

J'ai la commande suivante: xxx

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: xxx

J'ai juste besoin de voir quelque chose comme ça: xxx

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?


0 commentaires

4 Réponses :


1
votes

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


0 commentaires

9
votes

Utiliser foreach-objet code> est assez simple: xxx pré>

as @ user978511 pointus, à l'aide de la sortie verbeuse est plus compliqué: p>

$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'


1 commentaires

FullName est requis. Supprimer-item $ _. FullName; fait effectivement le travail sans exception.



4
votes

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
}


0 commentaires

2
votes

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


0 commentaires