我看到了一些类似的帖子,但不幸的是,到目前为止,这对我来说并不适用.我想获取最新的备份文件(随机生成),然后将文件复制并重命名为具有固定名称的同一文件夹,以便我可以安排还原作业.
备份文件如下:
Fin123.bak
Fin125.bak
Sales456.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_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 $_.CreationTime 对列表进行排序,以使最新文件在集合中的最后一个.
select-object -last 1 挑选最后一项(即最新文件),最后
copy-item -Destination (join-path $bak_path "FIN.BAK") 将最后一项作为FIN.BAK复制到同一目录