Immer die letzten X Zeichen aus jeder Zeile PowerShell
Ich versuche, die letzten 8 Zeichen jeder Zeile ein array in der pipeline,
Ich dachte, das wäre die Ausgabe die letzten 8 Zeichen, aber der Ausgang scheint leer zu sein
foreach($line in $Texfile)
{
$line[-8..-1]-join ''
}
Wie sind Sie zu definieren
Wenn Sie neugierig warum
Die post, die Sie verknüpft, ist nicht relevant. Sie können mit negativen Indizes für strings und character-arrays. Probieren Sie zum Beispiel
Der code, den Sie gepostet sollte in der Regel tun, was Sie wollen. Bitte geben Sie Beispiel für die Eingabe und zeigen, wie Sie gelesen, dass der input, damit wir das problem reproduzieren können.
Weh mir! Ich lasse mein ursprüngliche Kommentar ist, um auf ewig daran erinnert, dass einfach schaute über die Frage, ist nicht genug.
$Texfile
? ( Get-content xxx
, Get-Content xxx -raw
oder etwas anderes?) Und hattest du einen Tippfehler und meinst $Textfile
?Wenn Sie neugierig warum
-8..-1
nicht zu den erwarteten Ergebnis: stackoverflow.com/a/28461189/4424236Die post, die Sie verknüpft, ist nicht relevant. Sie können mit negativen Indizes für strings und character-arrays. Probieren Sie zum Beispiel
'1234'[-3..-1]
Im SeanBateman Frage -8..-1
interpoliert in -8,-7,-6,-5,-4,-3,-2,-1
jeweils gültigen index (vorausgesetzt, die Linie lang genug). Die Frage, die Sie verknüpft, ist ein Problem, mit einem positiven start und einem negativen Ende.Der code, den Sie gepostet sollte in der Regel tun, was Sie wollen. Bitte geben Sie Beispiel für die Eingabe und zeigen, wie Sie gelesen, dass der input, damit wir das problem reproduzieren können.
Weh mir! Ich lasse mein ursprüngliche Kommentar ist, um auf ewig daran erinnert, dass einfach schaute über die Frage, ist nicht genug.
InformationsquelleAutor SeanBateman | 2017-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt viele Möglichkeiten, dies zu tun, aber ich entschied mich für Rohr-Get-Content Cmdlet ForEach-Object.
In deinem Beispiel, die Sie verwenden würden, $Line in Ort der $ _ - und nicht pipe an eine ForEach-Objekt, und verwenden Sie stattdessen das Cmdlet Foreach-Sprache konstruieren, wie Sie getan haben.
Substring()
Methode ist, dass es wirft einen Fehler, wenn der string kürzer ist als 8 Zeichen. Der index-Betreiber ist ein sicherer Ansatz.InformationsquelleAutor tommymaynard
Versuchen Sie dies:
InformationsquelleAutor Fabian Mendez