【问题标题】:Creating folders from values in a CSV从 CSV 中的值创建文件夹
【发布时间】:2011-09-12 09:04:03
【问题描述】:

我正在研究大型脚本解决方案的一小部分,我需要根据存储在 CSV 中的值创建文件夹,然后根据 csv 列中的值将适用的文件移动到新文件夹中。

CSV 的格式:

fileName, folder
AC002       Y
AC034       Y
AC001
X2400       Y
AC006
AC007
AC009       Y

这是我为这个问题工作的代码:

$sourceDir = read-host "Please enter source Dir:"

$csv = import-csv C:\scripts\files\files.csv
$csv | where {$_.folder -eq 'Y'} | % {
            $path = $sourceDir + "\" + $_.fileName 
            if(-not (Test-Path $path))
            {
                md $path

            }#end if
        }#end for

下一步可能会有点棘手。

感谢 Shay Levy 的帮助, 克雷格

【问题讨论】:

  • csv文件中的所有文件和文件夹都位于$sourceDir下?

标签: file powershell csv


【解决方案1】:

试试这个,它会创建文件夹,即使它存在。如果您愿意,我们可以更改它并仅创建不存在的文件夹:

$csv = import-csv C:\scripts\files\files.csv
$csv | where {$_.folder -eq 'y'} | `
       foreach { md -force (join-path $sourceDir $_.fileName) }

【讨论】:

  • 非常感谢我以前从未见过 join-path cmdlet。这是一种享受,我不确定如何在 for 循环之前过滤字段,现在它非常明显。我已经编辑了我的原件,以展示我如何知道如何仅在文件夹不存在的情况下创建文件夹,如果您知道改进此代码的方法,我很乐意看到它,只是想告诉我自己如何做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 2011-02-06
相关资源
最近更新 更多