2016-05-31 6 views
0

CSVをループしてファイルの名前を変更するコードがありますが、Move-Itemを動作させることができません。どんな助けもありがとう。ありがとうCSVをループし、ファイルの名前を変更し、PowerShellの別のディレクトリに移動する

$lines = Import-Csv $extractFile 
foreach($line in $lines){ 
get-childitem C:\Docs\* | where {$_.name -eq $line.OldFileName} | Rename-Item -NewName $line.NewFileName | Move-Item -Destination C:\Renamed 
     } 

答えて

1

あなたのcsvファイルが私のものと似ていると仮定すると、これは私のために働いた。 $ fileinfoセクションを削除して、最初の行のコメントを解除することができます。

#$fileinfo = Import-Csv $extractFile 
$fileinfo = @' 
oldfilename,newfilename 
test1.txt,newtest1.txt 
test2.txt,newtest2.txt 
'@ | convertfrom-csv 

$source = 'c:\docs' 
$dest = 'c:\renamed' 
foreach($line in $fileinfo) { 
    Get-ChildItem $source -Filter $line.OldFileName | % { 
     Move-Item $_.FullName -Destination $(Join-Path $dest $line.NewFileName) 
    } 
} 

この部分をテストしていますが、そのようなメインラインを短くすることができるかもしれません。

Get-ChildItem $source -Filter $line.OldFileName | Move-Item -Destination $(Join-Path $dest $line.NewFileName) 
+0

は非常に役立つ、ありがとう – Dough

関連する問題