J'utilise PowerShell et j'ai créé un fichier texte, qui retire une liste d'actions disponibles sur un serveur.
Ce fichier texte contient de nombreux espaces blancs, mais je dois supprimer uniquement ceux du nom du dossier, Par exemple, Idéalement, je veux simplement supprimer cet espace afin qu'il lit Je copie le fichier texte et le renommer à CSV puis copiez le contenu de cette CSV et en utilisant l'espace comme délimiteur. Ensuite, met ensuite les résultats dans des colonnes. Cependant, lorsqu'il le fait, il récupère également plusieurs espaces et efface ainsi tous les espaces laissant les résultats comme indiqué ci-dessous. P> est-ce possible? P> < P> J'ai donc essayé ce qui suit: p> deux qui retirent mon code actuel strong> p> Résultats dans le fichier texte forte > p> comme vous pouvez le constater que le chemin de Testez 2 $ en deux colonnes, mais j'en ai besoin pour être en un. P> p> Test 2 $ code>. p> test2 $ code>. Comme j'essaie de créer un CSV de sorte qu'il puisse être utilisé dans un autre script. P>
3 Réponses :
Vous utilisez déjà une propriété calculée dans les colonnes. Utilisez la même manière pour le chemin.
Sort-Object -Property path | ft @{Name="Server";Expression={$_.__Server}},@{Name="Path";Expression={"'$_.Path'"}},Name -autosize
UPS J'ai mal interprété que vous voulez changer la colonne pour le nom et non le chemin. Mais la voie devrait être la même.
Merci t-moi hjowever les résultats montrent comme suit; Je tiens à préserver le format Orignal si possible '\\ wks0001 \ root \ cimv2: win32_share. = "IPC $".' ' Est-ce possible?
Pour moi, cela fonctionne: get-wmiobject win32_share | Objet de tri-objet -Property path | ft @ {name = "serveur"; expression = {$ _.__ serveur}}}, @ {nom = "chemin"; expr ecession = {$ _. PATH.REPL ACE (")}}, @ {Nom = "nom"; expression = {$ _. Nom.replace ("" "," ")}} -Autosize code> (ceci est une ligne)
Fonctionne après avoir échangé par () code> pour Remplacer () code>, mentionnant cela pourrait aider à comprendre ce que vous avez changé car il n'est pas évident.
Vous pouvez simplement mettre à jour vos propriétés calculées, le remplacement est donc utilisé uniquement par la propriété code> nom code>: vous donnera la sortie: p>
Merci, cependant, je veux faire un CSV exactement comme il l'affiche, alors en définissant le délimiteur à "", alors assignque chaque colonne A résultat jusqu'à ce que vous appuyez sur l'espace et perd les dernières colonnes données par exemple:
Vous ne mentionnez rien à propos de la chute de la colonne de données dans votre question, uniquement sur la suppression des espaces du "nom du dossier" ... Pouvez-vous mettre à jour vos questions pour expliquer clairement ce que vous voulez réellement. Montrez l'exemple de données d'entrée et de la manière dont vous souhaitez que cela sortit. Les données de code et / ou tabulaires dans les commentaires ne fonctionnent pas comme elle le masque sur une seule ligne.
Comme conseillé @james C, j'ai modifié ma question à tout reflète exactement ce que j'essaie de faire.
La solution à la question est d'utiliser ce qui suit; p>
-replace '\ s \ s +' p>
Ceci supprime tous les espaces du fichier texte et vous pouvez remplacer par un caractère et délimiter sur ce même caractère pour créer votre CSV. P>
Vous approchez de cela dans la mauvaise manière, il sera plus facile de mettre à jour les données avant i> vous l'enregistrez dans un fichier TXT. Veuillez mettre à jour votre question pour inclure le code que vous utilisez pour créer le fichier TXT afin que nous puissions voir ce que vous faites :)
Code mis à jour pour refléter ce qui est demandé