我需要PowerShell的一些帮助 - 我想在特定文件夹的所有子文件夹中搜索,并且每天上午9点将每个子文件夹中的最新文件复制到新文件夹。因此,我想在文件夹A的子文件夹a,b和c中搜索,以便在a,b和c中选择最新文件,并将所有三个文件移动到外部文件夹B(单个文件夹)中。我是PowerShell的新手 - 感谢任何帮助。我基本上尝试过使用此功能,但会创建备份:Copy most recent file from folder to destination
Clear-Host
$ChildFolders = @('In_a', 'In_b', 'In_c')
for($i = 0; $i -lt $ChildFolders.Count; $i++){
$FolderPath = "C:\FolderA\" + $ChildFolders[$i]
$DestinationPath = "C:\FolderB\" [$i]
gci -Path $FolderPath -File | Sort-Object -Property LastWriteTime -Descending | Select FullName -First 1 | %($_){
$_.FullName
Copy-Item $_.FullName -Destination $DestinationPath
}
答案 0 :(得分:0)
获取子文件夹
获取子文件夹中的所有文件
按创建日期将文件排序到数组
获取第一个条目
将文件移至目标目录
*它将覆盖目标文件夹中具有相同名称的文件
Function Get-LatestFiles($SourceFolder,$Destination){
$Subfolders = Get-ChildItem $SourceFolder -Directory
[System.Collections.ArrayList]$SubFoldersExpanded = new-object System.Collections.ArrayList
Foreach($SubFolder in $SubFolders){
$SubFolderExpanded = $Subfolder | %{(Get-ChildItem $_.FullName -File -Depth 1 | Sort-Object -Property CreationTime -Descending)}
if($SubFolderExpanded.Count -gt 0){
$SubFolderExpanded[0] | %{Move-Item $_.FullName -Destination $Destination -force}
}
}
}
Get-LatestFiles -SourceFolder C:\test -Destination C:\test01