2017-09-22 39 views
0

ファイルのフルパスを含むテキストファイルがあるとします。同じファイル名を含む2番目のテキストファイルですが、他の文字は前に付けることができます。2つのテキストファイルを比較し、powershellの一般的な単語を含む行を置き換えます。

私がしたいのは、最初のテキストファイルにあるフルパスでファイル名を2番目のファイルに置き換えることです。それはどうやってできますか?

たとえば、

あなたが持っているtextFile1.txtで

:textFile2.txtで enter image description here

あなたが持っている:enter image description here

は、私はこのような第三textFile3.txtを必要とする(だけの2のために、手動でそれを作りましたファイルが、私は、ファイル名と仮定すると、ツリー内のすべてのファイル) enter image description here

+0

あなたはいくつかの例であなたの質問を更新してくださいことはできますか? –

答えて

1

のためにユニークで、パスがファイル名のいずれかが含まれていないことを必要とする:

# 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 

注:これはuntestetで、バグが含まれる可能性があります;)

関連する問題