如何使用 robocopy 覆盖文件,无论其上次更改日期如何

如何使用 robocopy 覆盖文件,无论其上次更改日期如何

$destination我希望我的 PowerShell 脚本对目录中的目录进行备份,但新创建的备份目录应以“yyyy-dd-mm”为今天的日期$backup命名。$destination-{yyyy-dd-mm}

我编写了第一个 PowerShell 脚本,它只需一次操作就能完成这项工作。我注意到,如果文件夹不存在,它会创建一个文件夹,并在第一次执行时将所有文件复制到此文件夹中,但在后续运行中跳过如果没有更改,则删除所有文件。我想强制覆盖目标文件,而不管它们的最后更改日期是什么。

"START"

$source = "C:\Sandbox\Source"
$destination = "C:\Sandbox\Target"
$backup = "C:\Backups\"

"Taking backup of '$destination' in '$backup'"

$currentDate = Get-Date
$currentDate = $currentDate.ToString("yyyy-MM-dd")
$something = $backup + "Staging-" + $currentDate
robocopy $targetPath $something /E /V /MT /Z

"END"

答案1

我想强制覆盖目标文件,无论其上次更改日期是什么。

使用/IS开关-包含相同,即使文件已经相同,也要覆盖文件,其中Same文件类为:

在此处输入图片描述

来源:Robocopy“强大的文件复制”-Windows CMD-SS64.com

答案2

您想要的 robocopy 参数是“/IS”。

$参数=@('/IS','/R:0','/W:0','/MT','/E','/A-:SH')

$RoboCopy = 'C:\Windows\System32\Robocopy.exe'

$RoboCopyArgs = @($来源,$目的地,$名称) + $参数

& $RoboCopy @RoboCopyArgs

我有这个 robocopy powershell 脚本给你。希望你会觉得它有用。

https://www.tapuz.co.il/threads/%D7%94%D7%A2%D7%AA%D7%A7-%D7%A7%D7%91%D7%A6%D7%99%D7%9D-%D7%95%D7%95%D7%93%D7%90-%D7%99%D7%95%D7%A9%D7%A8%D7%AA-%D7%94%D7%94%D7%A2%D7%AA%D7%A7.15635089/post-145607055

相关内容