使用Powershell移动具有文本文件中列出的名称的目录

时间:2013-12-10 16:11:02

标签: powershell

这应该很容易,但我正在试着弄清楚我的脑袋。

我有一个包含目录名列表的文本文件。 例如:

Get-Content C:\file.txt
yellow
green
red

我想将E:\ dir1中的每个目录移动到文件中列出名称的E:\ dir2。 例如: 如果dir1的目录是“绿色,棕色,黄色,黑色”,我想将“绿色,黄色”移动到dir2。

Get-Content C:\file.txt | Foreach-Object -Process rename/move "E:\dir1\"$_ "E:\dir2\"$_

以上只是一个猜测,我相信它已经过时了。

通常在Bash中我会编写一个类似于以下内容的脚本。

For dir in `cat ./file.txt`
do
    mv ~/$dir /old/$dir
    echo "moving ~/$dir to /old/$dir"
done

谢谢!

2 个答案:

答案 0 :(得分:4)

我认为你非常接近

试试这个:

Get-Content C:\file.txt | 
         Foreach-Object {
                 move-item -path "E:\dir1\$_" -destination "E:\dir2\$_" 
         }

答案 1 :(得分:0)

Get-content .\File.txt | ? { $_.Trim() -ne [string]::Empty } | ForEach-Object { Move-Item -WhatIf "E:\Dir1\$_" "E:\Dir2\$_" }