我在下面有一个脚本,我想对目录中的所有 .csv 文件执行该脚本。我知道我可以使用 Get-ChildItems,但是如何仅针对 .\ 中的 .csv 文件对其进行过滤并执行我的脚本?
import-csv .\chapters.csv |
ConvertTo-Json -Compress |
ForEach-Object {$_ -creplace '""NULL""','null'} |
Out-File .\chapters.json
我在下面有一个脚本,我想对目录中的所有 .csv 文件执行该脚本。我知道我可以使用 Get-ChildItems,但是如何仅针对 .\ 中的 .csv 文件对其进行过滤并执行我的脚本?
import-csv .\chapters.csv |
ConvertTo-Json -Compress |
ForEach-Object {$_ -creplace '""NULL""','null'} |
Out-File .\chapters.json
如果我理解您的要求,只需使用文件 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” 。