2011-09-12 152 views
0

我正在处理较大脚本解决方案的一小部分,我需要根据存储在CSV中的值创建文件夹,然后根据值将适用文件移动到新文件夹中在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 

下一步很可能会多一点棘手。

由于吉文·利维的帮助, 克雷格

+0

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

回答

1

试试这个,它会创建文件夹,即使它的存在。我们可以改变,如果你想创建只存在不存在的文件夹:

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

非常感谢您以前从未见过连接路径cmdlet。这是一种享受,我不确定如何在for循环之前过滤字段,现在它变得非常明显。我编辑了我的原始文件,告诉我如何才能知道如何创建文件夹,如果他们不存在,如果您知道改进此代码的方式,我很乐意看到它,只是想展示我自己怎么做的想法。 –