Итак, у вас есть это пока ..
$paths = Get-Content "C:\user\paths.txt"
ForEach($path in $paths){
Write-Host $path
}
Далее вам потребуется Get-Content $path
в первом цикле ForEach
, а затем перебрать содержимое этого файла, используя другой цикл ForEach
внутри первого цикла. Затем добавьте операторы If
, чтобы проверить, имеет ли строка "UNDER LINE" в этой строке.
Есть и другие способы сделать это, но это простой способ, который легко прочитать. Извините, я не смог вас пройти через это, потому что я не могу комментировать, так как у меня еще недостаточно представителей. Но я прокомментировал приведенный ниже код, и, надеюсь, вы увидите, что я делаю. Если это не то, что вы пытались сделать, или если у вас есть какие-либо вопросы, просто дайте мне знать!
$paths = Get-Content "C:\Users\paths.txt"
# Loop through paths.txt for each path
ForEach($path in $paths){
# Store the content of $path
$OriginalFile = Get-Content $path
# List for creating the new updated/modified file
[String[]]$ModifiedFile = @()
# Loop through each line of the Original file
ForEach($line in $OriginalFile){
# Check the line if "UNDER LINE" is on that line
if($line -like "*UNDER LINE*"){
# Add the current line from the Original file to the new file
$ModifiedFile += $line
# Add the content of Add.txt (Update the path for the Add.txt)
$ModifiedFile += Get-Content ".\Add.txt"
}
# If the line from the Original file doesn't contain "UNDER LINE"
else {
# Add "UNDER LINE" to the new file
$ModifiedFile += "UNDER LINE"
# Add the content of Add.txt (Update the path for the Add.txt)
$ModifiedFile += Get-Content ".\Add.txt"
}
}
# This will overwrite $path file with the modified version.
# For testing purposes change $path to a new file name to verify output txt file is correct.
Set-Content $path $ModifiedFile
}