2017-09-22 16 views
0

Angenommen, wir haben eine Textdatei mit einem vollständigen Pfad von Dateien. Und eine zweite Textdatei, die nur dieselben Dateinamen enthält, denen jedoch andere Zeichen vorangestellt werden können.Vergleichen Sie zwei Textdateien und ersetzen Sie die Zeilen mit gemeinsamen Wörtern in Powershell

Was ich tun möchte, ist die Dateinamen in die zweite Datei mit den vollständigen Pfaden von ihnen ersetzen, die in der ersten Textdatei sind. Wie kann das gemacht werden?

Zum Beispiel;

In textFile1.txt Sie bekommen haben: enter image description here

In textFile2.txt haben Sie erhalten: enter image description here

ich ein drittes textFile3.txt wie diese müssen (es gerade noch manuell für zwei der Dateien, aber ich brauche für alle Dateien im Baum), dass enter image description here

+0

Können Sie bitte Ihre Frage mit einigen Beispielen aktualisieren? –

Antwort

1

die Dateinamen sind einzigartig und die Pfade enthalten keine der Dateinamen Unter der Annahme:

# Read files 
$File1 = Get-Content <file1> 
$File2 = Get-Content <file2> 

# Process each line 
Foreach ($Line in $File1) { 
    # Get only the filename for current line 
    $FileName = $Line.Split("\")[-1] 
    # Replace filename in file2 with the entire line of file1 
    $File2 = $File2 -replace $Filename,$Line 
} 
# Write new content to file2 
Set-Content -Path <file2> -Value $File2 

Hinweis: Dies ist untestet kann Fehler enthalten;)

Verwandte Themen