Dans un script PowerShell automatiser certaines tâches SVN, j'ai la fonction suivante:
function SvnUrlExists($url)
{
svn info $url | out-null 2>&1
return $?
}
Comme cela teste explicitement si une URL du référentiel SVN existe, je ne suis pas intéressé par une sortie d'erreur. Cependant, malgré tout, j'ai trouvé la redirection stderr
dans PowerShell suggérant 2>&1
Pour rediriger-le à stdout
, (, cela génère toujours un message d'erreur :
[.____] SVN: AVERTISSEMENT: W170000: URL 'Blahblah' inexistant dans la révision 26762 [.____] SVN: E200009: impossible d'afficher des informations pour toutes cibles, car certaines cibles n'existent pas [.____]
Malheureusement, cela gâchent gravement la sortie de mon script.
Qu'est-ce que je fais mal et comment devrais-je supprimer cette sortie d'erreur?
Juste au cas où quelqu'un d'autre est googles pour des termes similaires que je fais:
Après avoir frappé mon front contre cela pendant des heures, bien sûr, j'ai trouvé la solution en quelques minutes après avoir posté la question ici:
svn info $url 2>&1 | out-null
Cela fonctionne comme un charme.
Si vous souhaitez supprimer seulement Erreur standard, utilisez:
svn info $url 2>$null
On peut aussi faire cela:
svn info $url *> $null
La réponse votée génère une erreur pour moi. La solution a fini par suivre:
cmd /c "MyProgram MyArguments 2>&1" | Out-Null