我的工作目录中有数百个文件需要处理。看起来与此相似
a.txt
b.txt
c.txt
d.txt
所有这些文件都可以像这样手动处理
$lines = Get-Content "a.txt"
foreach ($line in $lines){
Out-File -FilePath "a-done.txt" -Encoding UTF8 -Append -InputObject ($line.Split(","))[0]
}
如何通过将所有文件名传递给上面的变量来使用循环自动执行此过程。
我已经尝试过foreach循环,但是没有用
$lines = Get-Content "path/*.txt"
foreach ($line in $lines){
Out-File -FilePath "$lines-processed.txt" -Encoding UTF8 -Append -InputObject ($line.Split(","))[0]
}
我在这里想念什么?
您正在遍历get-content的各行,而不是文件名的保存位置。您可能需要额外的步骤,例如
这是如何将csv文件合并为一个大CSV的示例。
希望我的榜样对您有所帮助。
如果我理解正确,则需要每个文件每一行的第一个标记。 然后这应该工作。
get-childitem?.txt | 获取内容| foreach {$ _。split(',')[0]} | 输出文件done.txt
问候,马丁