Hors-format de fichier
Je suis en train d'écrire un script qui après chaque itération d'une boucle (tableau de certains services), il permettra de recueillir les 4 valeurs pour chaque service sont les suivants: nom du serveur, nom de service, service de l'etat, et de début du service de nom
Donc, pour chaque itération, je tiens à la sortie de la 4 valeurs mentionnées dans un fichier externe (txt, svc, ou html) de telle sorte que chaque valeur sera organisé dans sa propre colonne. Actuellement, je utiliser l'onglet `t pour arranger les valeurs dans chaque colonne, mais il ne fonctionne pas très bien parce que certaines service de nom est beaucoup plus ou beaucoup plus courts afin de vis jusqu'à l'alignement de la colonne. Quelle autre solution proposez-vous donc toutes les colonnes sont alignées correctement
Ci-dessous est un extrait de mon script sur la façon dont je suis actuellement le format de la sortie vers un fichier txt
ForEach($service in services)
$startname = $service.startname
$state = $service.state
$servicename = $service.name
write-output "$server `t $servicename `t $state `t $startname is current" | out-file -append $ScriptDirectory
- Dans quel format voulez-vous vraiment? TXT, CSV & HTML tous sont très différents de sortie des exigences de mise en forme.
- TXT serait bien, aussi longtemps que son possible pour aligner toutes les colonnes correctement
Vous devez vous connecter pour publier un commentaire.
Si vous voulez juste pour vider les résultats de texte dans un bien-formaté façon (c'est à dire que vous n'avez pas d'exigences pour la fabrication de ce CSV, ou délimité par des tabulations, ou quoi que ce soit d'autre à part "facile pour une personne de lire"), alors il suffit d'utiliser
Format-Table -AutoSize
.AutoSize
fait exactement ce que vous voulez - il inspecte la longueur de toutes les propriétés en sortie, puis ajuste dynamiquement la largeur de la colonne, de sorte que, autant que possible, est indiqué.Vous n'avez pas expliquer où
$server
vient, je suppose que c'est défini quelque part d'autre...Au lieu d'utiliser plusieurs variables, utiliser Powershell objet pour le magasin de sortie. Quelque chose comme ceci:
Vous devrez peut-être ajouter un Select-Object de la chaîne afin de s'assurer que les colonnes sont dans le bon ordre que vous voulez pour votre sortie finale.
$
en face deservices
.Si vous souhaitez conserver les variables, Vous pouvez essayer la Chaîne de mise en forme à l'espace de la variable dans la chaîne de manière homogène. Dans l'exemple ci-dessous, l'espacement est de 20 caractères entre chaque valeur:
C'est un peu moins clair, ce que vous êtes à la recherche pour que certaines des propriétés de l'objet
Get-Service
renvoie n'existent pas écrite, et le code semble incomplète. Prendre une supposition à votre intention, si: