pinkfluffyunicorn
Goto Top

Powershell bezeichnungen in .txt voll ausschreiben

Hi Community!
Ich habe das Problem, dass ich alle Scheudules die auf meinem pc vorhanden sind (egal ob laufend, bereit, oder deaktiviert) in einer txt zwischen speicher, um sie als log und Prüfdatei zu verwende. nun habe ich das Problem, dass bei den Namen der Scheudler die zu lange sind einfach der hintere Teil abgeschnitten wird. wie kann ich machen dass der Komplette Name ausgeschrieben wird? als weitere Details benötige ich eigentlich nur die standard Details wie TaskPath und Status,

Content-ID: 296315

Url: https://administrator.de/contentid/296315

Ausgedruckt am: 26.11.2024 um 16:11 Uhr

126919
126919 15.02.2016 um 15:33:35 Uhr
Goto Top
Stichwort: -AutoSize bzw. -Wrap bei format-table

bzw. -Expand bei Select-Object

fk
colinardo
Lösung colinardo 15.02.2016 aktualisiert um 16:35:50 Uhr
Goto Top
Hi.
zum Ausgeben am einfachsten eine CSV nehmen
Get-ScheduledTask | select Taskname,State | export-csv 'C:\schedules.csv' -Delimiter ";" -Encoding UTF8 -NoType
Denn diese lässt sich einfach wieder in ein Objekt wandeln wenn es erforderlich ist (import-csv)

Oder auch:
Get-ScheduledTask | ft -AutoSize -Wrap Taskname,State | set-content 'C:\schedules.txt'
oder nur die Tasknamen
Get-ScheduledTask | select -Expand Taskname | set-content 'C:\schedules.txt'
usw. und sofort. gibt Möglichkeiten en masse face-smile

Grüße Uwe
PinkFLuffyUnicorn
PinkFLuffyUnicorn 15.02.2016 um 19:19:07 Uhr
Goto Top
Danke, genau nach sowas hab ich gesucht. aber weswegen geht das über >>"C:\blabla\TXT.txt" nicht?
colinardo
Lösung colinardo 15.02.2016 aktualisiert um 19:53:19 Uhr
Goto Top
Zitat von @PinkFLuffyUnicorn:

Danke, genau nach sowas hab ich gesucht. aber weswegen geht das über >>"C:\blabla\TXT.txt" nicht?
Das ist alte DOS-Manier und sollte man sich unter Powershell langsam abgewöhnen, denn nicht jeder Befehl in der Pipe gibt Daten in STDOUT weiter da es sich hier vielfach um Objekte statt um einfachen Text handelt.

Dafür gibt es ja die cmdlets wie Set-Content , out-file, add-content etc. pp.
PinkFLuffyUnicorn
PinkFLuffyUnicorn 15.02.2016 um 19:32:33 Uhr
Goto Top
Okay also einfach nur veraltete sprache, gutgut
PinkFLuffyUnicorn
PinkFLuffyUnicorn 15.02.2016 um 19:53:22 Uhr
Goto Top
Könntest du mir sagen wie ich spalte B und C nachträglich löschen kann?
colinardo
colinardo 15.02.2016 aktualisiert um 20:00:37 Uhr
Goto Top
Och Mensch heute ist hier aber echt der Wurm drin. Welche Spalten von welchem Code den bitteschön ??? Wenn die TOs sich hier mal so viel Mühe geben würden wie wir Antwortenden, dann müssten wir nicht ständig unsere Glaskugeln polieren. face-sad

Definiere dein Ziel und deine Parameter klar und unmissverständlich, dann kann man dir vernünftig helfen! Danke.
PinkFLuffyUnicorn
PinkFLuffyUnicorn 15.02.2016 um 20:02:53 Uhr
Goto Top
machen wir's einfacher, es reicht wenn ich einfach die \ in der datei löschen kann. "\" und '\' geht nicht ( (gc "C:\Users\Chris\Desktop\Taskkill\Schedules.csv") -replace ,'\' | set-content "C:\Users\Chris\Desktop\Taskkill\Schedules.csv" ) wie muss ich den \ eingeben um ihn zu löschen?
colinardo
colinardo 15.02.2016, aktualisiert am 29.05.2019 um 12:14:04 Uhr
Goto Top
-replace nutzt RegularExpressions! Deswegen musst du deinen Backslash "escapen" weil dieser selbst das Escape-Sonderzeichen in Regular Expressions ist
Also
-replace '\\',''

Bitte mal lesen:
Regular Expressions Tutorial
PinkFLuffyUnicorn
PinkFLuffyUnicorn 15.02.2016 um 20:12:45 Uhr
Goto Top
entweder hab ich was verstellt oder mein pc raff die zeichengebung net, das nimmt er nämlich auch nicht an hatte ich auch schon probiert
colinardo
colinardo 15.02.2016 aktualisiert um 20:32:39 Uhr
Goto Top
Typische Anfängerfehler, schau dir mal deinen Code oben an, da fehlt der String durch den der gesuchte ersetzt wird !!
((gc 'C:\Users\Chris\Desktop\Taskkill\Schedules.csv') -replace '\\','') | set-content 'C:\Users\Chris\Desktop\Taskkill\Schedules.csv'  
Der Grund warum du das replacen machst ist mir aber immer noch nicht klar, das ist wahrscheinlich deinem Kenntnisstand von Powershell geschuldet. Also begebe dich zurück auf los und nehme nochmal die Grundlagen Powershell durch.
PinkFLuffyUnicorn
PinkFLuffyUnicorn 16.02.2016 um 14:11:52 Uhr
Goto Top
Passiert trzdm nichts 0.o
PinkFLuffyUnicorn
PinkFLuffyUnicorn 16.02.2016 um 14:12:26 Uhr
Goto Top
Möchte die reinen namen als logdatei und die störenden zeichen entfernen
Biber
Biber 16.02.2016 aktualisiert um 14:33:04 Uhr
Goto Top
Moin PinkFLuffyUnicorn,

wer soll und vor allem wer will denn mit deinen zwei, drei letzten Kommentaren (oder sind das diese neumodischen "Tweets"??) etwas anfangen?

Nicht altersgerecht, egal wie jung du bist, sind Befindlichkeiten wie
Passiert trzdm nichts 0.o
DAS ist keine Fehlermeldung!
Auch nicht unter pinkigen Einhörnern, da wette ich.

Meine Intention und der Anlass zum Einschreiten hier ist:
Es ist nicht im Interesse dieses Forums, wenn Flachkoepper und/oder colinardo wegen auf Dauer nerviger Soll-ich-dem-Noob-denn-für-alles-eine-Zeichnung-machen?-Situationen in die Kneipe oder die Klapse getrieben werden.

Oder, um colinardo zu zitieren, falls das für dich freundlicher klingt:
Definiere dein Ziel und deine Parameter klar und unmissverständlich, dann kann man dir vernünftig helfen! Danke.

Grüße
Biber

P.S. Das war meine freundliche Seite. Kann dir auch auf Wunsch den Rest zeigen.
colinardo
colinardo 16.02.2016 aktualisiert um 16:50:46 Uhr
Goto Top
Zitat von @PinkFLuffyUnicorn:
Möchte die reinen namen als logdatei und die störenden zeichen entfernen
Hatte ich dir doch schon extra eine Zeile dafür oben gepostet, die enthält 100% nur die Namen der Tasks.
Get-ScheduledTask | select -Expand Taskname | set-content 'C:\schedules.txt'  

Ein Minimum an Lernbereitschaft setzen wir hier schon voraus. Ansonsten bist du im falschen Forum.

@Biber Du sprichst einem aus der Seele face-wink Danke.