使用Powershell将文件名和文件内容中的值分配给模板

在我的目录path \中,我有很多名称如下的文本文件

area1.txt
area2.txt
area3.txt

每个文件包含许多这样的衬里字符串

user1
user2
user3

如何编写Powershell脚本将文件的所有文件名和内容传递到模板,以便每次迭代或将所有结果组合到单个文件中时看起来都像这样。

area "filename"
user "user1"
realname "user1"

设法编写脚本,但未产生预期的结果。不知何故,它只会在循环中生成文件名的最后一个值,并在用户和实名模板之后生成空字符串。

foreach($file in Get-ChildItem path\ -Filter *.txt){
$result = @"
area $($file.BaseName)
area {0} 
realname {0} 
"@
}

foreach($file in Get-ChildItem path\ -Filter *.txt){
    foreach ($line in $file |Get-Content){
        $result -f $_
    }
  }

需要您的帮助以指出我脚本中的错误并帮助我修复它。如果有人可以提供帮助,我非常感谢。

评论
对不起
对不起

为此,您只需要一组(嵌套)循环:

foreach($file in Get-ChildItem path\ -Filter *.txt){
    foreach ($line in $file |Get-Content){
        @"
area {1}
user {0} 
realname {0}
"@ -f $_,$file.BaseName
    }
}
点赞
评论