2011-09-12 66 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循環之前過濾字段,現在它變得非常明顯。我編輯了我的原始文件,告訴我如何才能知道如何創建文件夾,如果他們不存在,如果您知道改進此代碼的方式,我很樂意看到它,只是想展示我自己怎麼做的想法。 –