$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
文件类为:
答案2
您想要的 robocopy 参数是“/IS”。
$参数=@('/IS','/R:0','/W:0','/MT','/E','/A-:SH')
$RoboCopy = 'C:\Windows\System32\Robocopy.exe'
$RoboCopyArgs = @($来源,$目的地,$名称) + $参数
& $RoboCopy @RoboCopyArgs
我有这个 robocopy powershell 脚本给你。希望你会觉得它有用。