我有一个脚本,我想对目录中的所有.csv文件执行。我知道我可以使用Get-ChildItems,但是如何仅针对。\中的.csv文件过滤它并执行我的脚本?
import-csv .\chapters.csv |
ConvertTo-Json -Compress |
ForEach-Object {$_ -creplace '""NULL""','null'} |
Out-File .\chapters.json
答案 0 :(得分:2)
如果我理解你的要求,只需使用文件glob并将结果传递给 Import-CSV **。使用 Foreach-Object 循环捕获每个CSV文件的基本名称,以用于命名输出文件。
Get-ChildItem .\*.csv | Foreach-Object {
$basename = $_.BaseName
import-csv $_ | ConvertTo-Json -Compress | Foreach {$_ -creplace '""NULL""','null'} | Out-File ".\$basename.json"
}
顺便说一下, Get-ChildItem 结束时没有“s”。