【发布时间】:2017-07-10 20:47:02
【问题描述】:
我有包含以下内容的 text1.txt 文件:
sometext_1
--start
sometext_2.1
sometext_2.2
...
sometext_2.n
--end
sometext_3
和 text2.txt 文件,内容如下:
--start
sometext_2_new1
sometext_2_new2
...
sometext_2_newn
--end
有人可以帮我编写 Powershell 代码来更新关键字 --start 和 --end 之间的 text1.txt 文件的内容,其中包含文件 text2.txt 的所有内容? 所以新的 text1.txt 如下所示:
sometext_1
--start
sometext_2_new1
sometext_2_new2
...
sometext_2_newn
--end
sometext_3
更新: 我真的是 Powershell 的新手。经过一些研究,我能够想出以下仍然没有给我我需要的东西:
param(
[string]$location
)
$contentStart = Get-Content "c:\text2.txt"
$configFiles = Get-ChildItem $location\*.txt -rec
foreach ($file in $configFiles)
{
(Get-Content $file.PSPath) |
Foreach-Object { $_ -replace "--start.*?(--end)", $contentStart } |
Out-File $file.PSPath
}
但仅当 text1.txt 在一行中包含关键字 --start 和 --end 并且 relult 紧随其后时才有效(插入的内容没有结束符) :
sometext_1
--start sometext_2_new1 sometext_2_new2 ... sometext_2_newn --end
sometext_3
【问题讨论】:
-
你有什么要开始的吗? “请为我写代码”的帖子通常不受欢迎。如果您也理解正确的代码,它将更加有用。
-
我已经更新了我的问题。
标签: powershell