【发布时间】:2015-01-08 14:18:37
【问题描述】:
需要一个 powershell 脚本,它将文件夹和文件从一个位置移动到另一个位置,该位置早于 x 天,但某些文件夹被排除在外。
还需要能够通过电子邮件发送它移动的文件和文件夹列表。
我可以移动文件夹中的文件,但我不确定如何移动整个文件夹。
这是我目前整理的一些代码,任何建议都会很棒
Set-ExecutionPolicy RemoteSigned
#----- define parameters -----#
#----- get current date ----#
$Now = Get-Date
#----- define amount of days ----#
$Days = "7"
#----- define folder where files are located ----#
$TargetFolder = "C:\test"
$TargetPath = "C:\test5"
#----- define extension ----#
$Extension = "*.*"
#----- define LastWriteTime parameter based on $Days ---#
$LastWrite = $Now.AddDays(-$Days)
#----Exclusion List ----#
$exclude =@('test1', 'test2')
#----- get files based on lastwrite filter and specified folder ---#
$Files = Get-Childitem -path $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"} -and $_Name -ne $exclude | foreach ($_)} #-
foreach ($File in $Files)
{
if ($File -ne $NULL)
{
write-host "Deleting File $File" -ForegroundColor "DarkRed"
Move-Item $File.FullName $TargetPath -force
}
else
{
Write-Host "No more files to delete!" -foregroundcolor "Green"
}
}
【问题讨论】:
-
你是根据文件的lastwrite时间来选择目录,还是不管内容如何都需要查看文件夹本身的lastwritetime?
-
文件夹的 lastwritetime 本身与内容无关。
标签: powershell directory