Ich brauche Hilfe formatieren der Ausgabe mit PowerShell-cmdlet Out-File

Habe ich eine Reihe von belegen, die durch die folgende Funktion entwickelt, um count Wort vorkommen in jedem Dokument. Diese Funktion funktioniert die Ausgabe auf der Konsole, aber jetzt möchte ich eine text-Datei erstellt containting die Informationen, aber mit dem Datei-Namen angehängt, um jedes Wort in der Liste.

Meine aktuelle Ausgabe in der Konsole ist:

"processing document1 with x unique words occuring as follows"
"word1     12"
"word2      8"
"word3      3"
"word4      4"
"word5      1"

Ich soll eine durch Trennzeichen getrennte Datei in diesem format:

document1;word1;12
document1;word2;8  
document1;word3;3
document1;word4;4
document1;word1;1
document2;word1;16
document2;word2;11 
document2;word3;9
document2;word4;9
document2;word1;13 

Während die Funktion unten wird mir die Listen von Wörtern und Begebenheiten, ich habe eine harte Zeit, herauszufinden, wo oder wie fügt man den Dateinamen variabel, so dass es druckt am Beginn jeder Zeile. MSDN wurde weniger als hilfreich, und die meisten der Orte, die ich versuchen, legen Sie die variable zu einem Fehler führen (siehe unten)

function Count-Words ($docs) {
    $document = get-content $docs 
    $document = [string]::join(" ", $document)        
    $words = $document.split(" `t",[stringsplitoptions]::RemoveEmptyEntries)                             
    $uniq = $words | sort -uniq  
    $words | % {$wordhash=@{}} {$wordhash[$_] += 1}
    Write-Host $docs "contains" $wordhash.psbase.keys.count "unique words distributed as follows."
    $frequency = $wordhash.psbase.keys | sort {$wordhash[$_]}
    -1..-25 | %{ $frequency[$_]+" "+$wordhash[$frequency[$_]]} | Out-File c:\out-file-test.txt -append
    $grouped = $words | group | sort count

Muss ich einen string übergeben an das cmdlet out-file? ist das nur etwas, das ich habe setzen an der falschen Stelle auf den letzten paar versucht? Ich würde gerne verstehen, WARUM es in einem bestimmten Ort, als auch. Jetzt bin ich nur raten, weil ich weiß, ich habe keine Ahnung, wo die out-file zu erreichen, meine gewählten Ergebnisse.

Habe ich versucht, die Formatierung meiner Befehl per powershell helfen, mit den -$docs und -FilePath, aber jedes mal, wenn ich etwas hinzufügen, um die out-file oben, das erfolgreich verläuft, bekomme ich die folgende Fehlermeldung:

Out-File : Cannot validate argument on parameter 'Encoding'. The argument "c:\out-file-test.txt" does not bel
ong to the set "unicode,utf7,utf8,utf32,ascii,bigendianunicode,default,oem" specified by the ValidateSet attribute. Sup
ply an argument that is in the set and then try the command again.
At C:\c.ps1:39 char:71
+     -1..-25 | %{ $frequency[$_]+" "+$wordhash[$frequency[$_]]} | Out-File <<<<  -$docs -width 1024 c:\users\x46332\co
unt-test.txt -append
    + CategoryInfo          : InvalidData: (:) [Out-File], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.OutFileCommand
InformationsquelleAutor dwwilson66 | 2013-02-15
Schreibe einen Kommentar