Comment faire pour supprimer l'PowerShell Get-Content de sortie
J'ai une PS script:
script.ps1
[System.Xml.XmlDocument] $Config;
function Get-ScriptDirectory
{
Split-Path $script:MyInvocation.MyCommand.Path
}
function Load-Config
{
$configPath = Join-Path (Get-ScriptDirectory) config.xml
$global:Config = [xml](gc $configPath)
}
Load-Config
config.xml
<Configuration>
</Configuration>
Plus tard dans le script que je suis en train de travailler avec la variable $Config. Lorsque j'exécute ce script, il écrit la sortie de la console, qui contient l'élément racine du document xml. Quelque chose comme:
Configuration
--------------
Est, il existe, de toute façon, comment faire pour supprimer cette sortie?
Grâce.
OriginalL'auteur zosim | 2012-01-24
Vous devez vous connecter pour publier un commentaire.
Probablement la sortie n'est pas causée par l'instruction d'affectation (une déclaration de nullité), mais par cette ligne:
[System.Xml.XmlDocument] $Config;
Dans PowerShell, en général, toutes les déclarations retourner une valeur (à l'exception de nullité des déclarations). Je pense que la première fois que vous exécutez le script, pas de sortie sera écrit dans la console. Cependant sur les exécutions ultérieures
$Config
contient toujours la valeur de l'exécution précédente, et sa valeur sera écrit à l'écran.[System.Xml.XmlDocument] $Config | Out-Null
[void][System.Xml.XmlDocument]$Config
$null = $Config
$Config
variablesont des moyens pour supprimer ce comportement.
OriginalL'auteur jon Z
Si vous ne voulez pas la sortie d'une commande à imprimer à la console, vous pouvez jeter par tuyauterie ou rediriger à -Null. Par exemple, les deux vont travailler:
Si vous êtes familier avec les systèmes de type Unix, -Null est conceptuellement équivalent à
/dev/null
.$null
. En tout cas, ce n'est pas vraiment le même, comme vous le redirect ne/dev/null
mais pipe pourOut-Null
.Correct, car
/dev/null
est représenté sous forme d'un fichier. Merci pour le tuyau.J'ai mis à jour ma question pour mieux décrire mon code. J'ai essayé votre conseille, mais il ne m'a aidé. Parce que quand j'ai rediriger la sortie, ma Config variable est vide dans la fonction suivante quand je suis en l'appelant.
Le code de la
Load-Config
fonction ne devrait pas imprimer quoi que ce soit à la console. Pourriez-vous s'il vous plaît poster l'intégralité du script?J'ai mis à jour la question. Il n'est qu'un fragment, mais il suffit de voir le comportement que je décris.
OriginalL'auteur Enrico Campidoglio
Quelque part vous êtes de dumping de la variable à partir de votre script. Comme il tombe hors de la pipe, il est transmis à l'extérieur de l'Hôte et qui donnera le résultat que vous voyez.
De la solution réelle pour vous assurer de ne rien retourner à partir de votre script. Comme je ne peux pas voir ton code je ne peux pas le point où, mais quelque part il y a un pipeline ou d'une déclaration que les fuites de l'objet en éléments de sortie. Êtes-vous sûr que vous êtes en utilisant une affectation à chaque endroit où vous avez besoin?
OriginalL'auteur Joey
Quelques Options:
OriginalL'auteur Shay Levy