Powershell 查找最新文件名,并将其作为重命名文件复制到同一文件夹中

Powershell 查找最新文件名,并将其作为重命名文件复制到同一文件夹中,powershell,Powershell,我看到了一些类似的帖子,但不幸的是,到目前为止,这对我来说并不奏效。我想获取最新的备份文件(随机生成),然后在同一文件夹中以固定名称复制和重命名该文件,以便安排还原作业 备份文件如下所示: Fin123.bak Fin125.bak 销售456.bak HRF100.bak 我想获得最新的文件(按创建日期),然后复制并重命名该文件,如Fin.bak。在上面的文件中,Fin125.bak是我想复制并重命名为Fin.bak的最新备份文件。powershell脚本应忽略所有其他文件,如Sales、HR

我看到了一些类似的帖子,但不幸的是,到目前为止,这对我来说并不奏效。我想获取最新的备份文件(随机生成),然后在同一文件夹中以固定名称复制和重命名该文件,以便安排还原作业

备份文件如下所示:

Fin123.bak
Fin125.bak
销售456.bak
HRF100.bak

我想获得最新的文件(按创建日期),然后复制并重命名该文件,如Fin.bak。在上面的文件中,Fin125.bak是我想复制并重命名为Fin.bak的最新备份文件。powershell脚本应忽略所有其他文件,如Sales、HR等。只有以Fin开头且具有最新创建日期的文件

非常感谢您的帮助。 谢谢
穆罕默德

这应该能奏效

$bak_path = "path_to_backup_folder" get-childitem -path $bak_path -Filter "Fin?*.bak" | where-object { -not $_.PSIsContainer } | sort-object -Property $_.CreationTime | select-object -last 1 | copy-item -Destination (join-path $bak_path "FIN.BAK") $bak\u path=“路径到备份文件夹” 获取子项-路径$bak_路径-过滤器“Fin?*.bak”| 其中对象{-not$\ PSIsContainer} 排序对象-属性$\ CreationTime | 选择对象-最后一个1| 复制项目-目的地(连接路径$bak_路径“FIN.bak”) 经历它

$bak_path=“path_to_backup_folder”
将备份目录的路径声明为常量

get childitem-path$bak_path-Filter“Fin?*.bak”
返回文件夹$bak_path中与过滤器“Fin?.bak”匹配的一组对象。“?”用于确保只有“fin”和“.bak”之间至少有一个字符的文件匹配

where object{-not$\ PSIsContainer}
删除任何目录对象(以防万一)

sort object-Property$\u.CreationTime
对列表进行排序,以便最新的文件位于集合中的最后一个

select object-last 1
拾取最后一项(即最新文件),最后


复制项目-目的地(连接路径$bak_path“FIN.bak”)
将最后一个项目作为FIN.bak复制到同一目录中

这将用于获取.bak扩展名的最新文件

$OriginalDir = "E:\"
$BackupDir = "H:"
#After the -Name can be changed for whatever you need to backup.
$LatestFile = Get-ChildItem -Path $dir -Name *.bak | Sort-Object LastAccessTime -Descending | Select-Object -First 1
Copy-Item -path "$OriginalDir\$LatestFile" "$BackupDir\$LatestFile"

到目前为止,您做了哪些尝试?我喜欢中的脚本,但未能通过Fin***和最新创建日期限制文件。