PowerShell -只读我在dir中指定的通配符文件名,并将结果输出到txt文件oddities



我在使用PowerShell输出一个txt文件时遇到了一个小问题,该文件包含目录中的文件名列表,每行的开头都附加了word file (file dave.acc)。当我在提示符(foreach ($i in Get-ChildItem .*.aac) {echo "file '$i'" | Out-File -encoding ascii mylist.txt}中使用这一行时,我在运行后的新文本文件中只有一个条目(似乎只是dir中的最后一个条目)。dir中有5个文件,我的新txt文件的预期输出应该是file

file dave.mp3 
file steve.mp3

等等,任何帮助都会很好。

问题是,对于与过滤器对应的每个文件,您都要覆盖"mylist.txt"

试题:

foreach ($i in Get-ChildItem .*.aac) {
Add-Content .mylist.txt "file $i"
}

Add-Content将为Get-ChildItem输出中的每个文件追加新的内容。:)

编辑:

同样,你不应该使用"echo"它是"write - output"的别名。如果你不想使用"Add-Content"你可以这样做:

foreach ($i in Get-ChildItem .*.aac) {
Write-Output "file $i" | Out-File -encoding ascii -Append .mylist.txt
}

但是正如你所看到的,写起来很长。:)

"Add-Content"基本上就是做ascii编码和"追加"*

*编辑:这对PS 5.1是正确的,但不适用PS 7,默认编码为UTF-8,正如@zett42在评论中提到的。

相关内容

  • 没有找到相关文章

最新更新