我在一个文件夹中有多个文件,试图与字符串“ Name =”匹配,然后在“ AREA:...”行的末尾添加一些文本。该代码有效,但是,它将所有文件的所有内容放入每个文件中。我知道我需要遍历每个文件,但是我在为匹配使用循环而苦苦挣扎,然后循环每个文件,以便不添加所有内容。我是PowerShell的新手,感谢您和患者的帮助。谢谢
$filepaths = 'C:\Users\test\test\*.txt'
foreach ($filename in $filepaths)
{
(Get-Content $filename) |
foreach {
if ($_ -match "Name=")
{
"$_ AREA: KIT:"
}
else
{
$_
}
} | set-Content $filename
}
感谢AdminOfThings,以下代码可以正常工作
$filepaths = 'C:\Users\test\test\*.txt'
foreach ($filename in (get-item $filepaths))
{
(Get-Content $filename) |
foreach {
if ($_ -match "Name=")
{
"$_ AREA: KIT:"
}
else
{
$_
}
} | set-Content $filename
}
答案 0 :(得分:0)
如果需要将字符串设置为以任何顺序包含“ Name =”的任何字符串,则必须执行以下操作:
$filepaths = 'C:\Users\test\test\*.txt'
foreach ($filename in (get-item $filepaths)){
(Get-Content $filename) |foreach {
if ($_ -match "Name="){
$_.Insert($_.Length," AREA: KIT:")
}
else{
$_
}
} | set-Content $filename
}