标题: [文本处理] 紧急求助批处理定时备份文件 [打印本页]
作者: 43397776 时间: 2022-7-22 17:05 标题: 紧急求助批处理定时备份文件
请教各位大神!
如何用批处理把一个文件夹下的所有文件备份备份到另一个文件夹下(如: D:123\456,备份到E:111\222)
需求:
1、每6小时自动备份一次;
2、备份后的文件以备份当时的时间命名!
3、自动覆盖或者删除前10天的备份,
作者: flashercs 时间: 2022-7-22 17:27
robocopy 可以了解一下
作者: 43397776 时间: 2022-7-22 17:53
回复 2# flashercs
您好 不太懂
作者: flashercs 时间: 2022-7-22 19:11
- <#*,:&cls
- @echo off
- cd /d "%~dp0"
- powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~f0\" -ReadCount 0 | Out-String)))"
- pause
- exit /b
- #>
- # 间隔时间(单位:秒)
- $delay = 6 * 60 * 60
- # 备份源文件夹
- $srcdir = "d:\test\d\04"
- # 备份目标文件夹
- $dstdir = "d:\test\d\05"
-
- while ($true) {
- # 备份
- [System.IO.DirectoryInfo]$dstdir2 = [System.IO.Directory]::CreateDirectory([System.IO.Path]::Combine($dstdir, (Get-Date -Format 'yyyyMMddHHmmssfff')))
- Copy-Item -LiteralPath $srcdir -Destination $dstdir2 -Recurse -Verbose
- # 删除前10天的备份目录
- (Get-ChildItem -LiteralPath $dstdir | Where-Object { $_.PSIsContainer }) | ForEach-Object {
- $span0 = $_ | New-TimeSpan
- if ($span0.Days -ge 10) {
- $_ | Remove-Item -Recurse -Force -Verbose
- }
- }
- Start-Sleep -Seconds $delay
- }
复制代码
作者: 43397776 时间: 2022-7-23 16:06
回复 4# flashercs
非常感谢!
作者: 43397776 时间: 2022-7-23 16:08
回复 4# flashercs
<#*,:&cls
@echo off
cd /d "%~dp0"
powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~f0\" -ReadCount 0 | Out-String)))"
pause
exit /b
老师,方便给说一下以上代码的含义吗?谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |