Ich habe eine Datei, die tabulatorgetrennt ist. Ich möchte ein Powershell-Skript, das die Anzahl der Registerkarten in jeder Zeile zählt. Ich kam mit diesem:Oneliner zum Zählen der Anzahl der Registerkarten in jeder Zeile einer Datei
${C:\tabfile.txt} |% {$_} | Select-String \t | Measure-Object | fl count
es ergibt 3, die die Anzahl der Zeilen in der Datei ist.
irgendwelche Hinweise auf was ich falsch mache? Ich möchte, dass eine einzelne Nummer für jede Zeile in der Datei gedruckt wird.
+1. Schöne Erklärung, warum sein ursprünglicher Code nicht funktioniert hat. Wahrscheinlich hilft mehr als nur eine Lösung :-) (ich hätte es auch gemacht, aber ich habe nie Select-String benutzt :-)) – Joey
Ich bin immer noch verwirrt, wenn ich den Scriptblock benutze. Ich habe auch bemerkt, dass beide Lösungen GC verwenden, anstatt die Datei mit $ {file.txt} zu konsumieren, ist das nur eine Frage des Stils? – JasonHorner
Wenn Sie '$ {...}' verwenden, müssen Sie den vollständigen absoluten Pfad zwischen den Klammern setzen, während 'Get-Content' die Verwendung relativer Pfade erlaubt. Was mich betrifft, habe ich keine Benutzerdateien in 'C: \' herumliegen, also wäre es immer etwas wie '$ {C: \ Users \ me \ ...}' was umständlich ist (ok, ich Ich habe ein 'Home:' Laufwerk erstellt, aber trotzdem mag ich keine absoluten Pfade :-). Auch 'Get-Content' gibt Ihnen eine Ausnahme, wenn es etwas nicht finden kann, was manchmal nützlich ist, um seltsame Fehler zu debuggen :-) – Joey