1

我在下面有一个脚本,我想对目录中的所有 .csv 文件执行该脚本。我知道我可以使用 Get-ChildItems,但是如何仅针对 .\ 中的 .csv 文件对其进行过滤并执行我的脚本?

import-csv .\chapters.csv | 
    ConvertTo-Json -Compress | 
    ForEach-Object {$_ -creplace '""NULL""','null'} | 
    Out-File .\chapters.json
4

1 回答 1

3

如果我理解您的要求,只需使用文件 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” 。

于 2013-07-12T00:08:38.833 回答