在Windows 7
中,我想使用PowerShell
移动当前目录及其子目录,子子目录等中的所有文件,并使用某个LastWrite YEAR
,到一个带有相对路径的新目录。
有人可以写下我必须使用的PowerShell
行代码吗?
答案 0 :(得分:0)
您可以使用Move-Item
功能将文件从一个路径移动到另一个路径
示例:
Move-Item 'c:\YourFolder\*' 'c:\DestinationFolder'
这会将文件夹中的所有文件移动到目标文件夹(*)。
要从特定日期移动文件,您必须将其传输到where-object
函数:
示例:
Get-ChildItem 'C:\folder' | where-object {$_.lastwritetime.Year -eq 2013} |
Move-Item -destination 'c:\DestinationFolder'
答案 1 :(得分:0)
这是保持相对路径的解决方案。你需要的是CD到源DIR然后更新
$files = Get-ChildItem -Recurse -File | where {$_.LastWriteTime.Year -eq 2012}
并运行
$baselength = (Get-Location).Path.Length + 1
$destDir = 'G:\dest'
$files = Get-ChildItem -Recurse -File | where {$_.LastWriteTime.Year -eq 2012}
$files | foreach {
Write-Verbose "moving $_.fullname"
$dest = Join-Path $destDir $_.FullName.Substring($baselength)
if ( -not (Test-Path (Split-Path $dest)))
{
New-Item -ItemType directory -Path (Split-Path $dest) | Out-Null
}
Move-Item $_.FullName $dest -Force
}