2017-12-21 13 views
0

Ich versuche ein Skript in PowerShell zu schreiben, das in einer "foreach" -Schleife alle nur Dateien in einem bestimmten Ordner einliest, der "Beispiel" in seinem Namen enthält. Das Problem ist, dass ich versuche, den Inhalt jeder Datei in einer Variablen ohne Erfolg zu speichern. Versuchte Get-Content $ file zu verwenden, und es gibt die folgenden Fehler „Get-Content: Kann Pfad finden“, auch wenn der Weg am Anfang an die Ordnern var und Datei tatsächlich eingestellt wurde enthält die Datei Das brauche ich. Ich kann es nicht zu $ filecontent zuweisenGet-Content: Pfad nicht gefunden

$Folder = Get-ChildItem U:\...\Source 

foreach($file in $Folder) 
{ 
    if($file.Name -Match "example") 
    { 
     $FileContent = Get-Content $file     
    } 
} 

Antwort

1

Ihr Arbeitsverzeichnis U:\...\Source ändern und dann wird es funktionieren.

Verwenden

cd U:\...\Source 
$folder = gci U:\...\Source 

Nachdem Sie mit Ihrer Arbeit fertig sind, können Sie Ihr Arbeitsverzeichnis wieder cd Befehl oder die push-location Cmdlets ändern.

6

Dies geschieht, da das Standardverhalten des FileInfo-Objekts nur den Dateinamen zurückgibt. Das heißt, es gibt keine Pfadinformationen, daher versucht Get-Content, auf die Datei aus dem aktuellen Verzeichnis zuzugreifen.

Verwenden Sie die Eigenschaft FullName von FileInfo, um den absoluten Pfad zu verwenden. Wie so,

foreach($file in $Folder) 
{ 
... 
    $FileContent = Get-Content $file.FullName 
+0

Dank! es funktionierte! –

0

versuchen Sie dies:

Get-ChildItem U:\...\Source -file -filter "*example*" | %{ 

$FileContent = Get-Content $_.fullname 

} 
Verwandte Themen