You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下如何自动备份指定文件至目标文件夹

实现Windows 10下指定文件修改时自动备份到目标文件夹

以下是三种可行的方案,按需选择:

方案一:PowerShell实时监控脚本(实时触发)

通过FileSystemWatcher监听文件修改事件,一旦目标文件更新就立即执行备份。

  1. 新建一个文本文件,粘贴以下代码,保存为BackupWeek1PDF.ps1(比如存到d:\scripts目录):
$sourcePath = "d:\homework\week1.pdf"
$targetDir = "e:\backup"

# 确保目标目录存在
if (-not (Test-Path $targetDir)) {
    New-Item -ItemType Directory -Path $targetDir | Out-Null
}

# 初始化文件监控器,只监控源文件所在目录的指定文件
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = Split-Path $sourcePath -Parent
$watcher.Filter = Split-Path $sourcePath -Leaf
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true

# 定义文件修改后的执行逻辑
$onChanged = Register-ObjectEvent $watcher "Changed" -Action {
    $sourceFile = $Event.SourceEventArgs.FullPath
    $targetFile = Join-Path $Event.MessageData $Event.SourceEventArgs.Name
    
    # 等待2秒避免文件处于锁定状态无法复制
    Start-Sleep -Seconds 2
    Copy-Item -Path $sourceFile -Destination $targetFile -Force
    Write-Host "已完成备份: $sourceFile -> $targetFile"
} -MessageData $targetDir

# 保持脚本运行,按Ctrl+C停止
Write-Host "开始监控文件: $sourcePath,按Ctrl+C退出"
try {
    while ($true) { Start-Sleep -Seconds 1 }
}
finally {
    # 清理监控器和事件
    Unregister-Event $onChanged.Id
    $watcher.Dispose()
}
  1. 运行脚本:
    • 右键点击脚本,选择“用PowerShell运行”,或者在命令提示符中执行:powershell -ExecutionPolicy Bypass -File "d:\scripts\BackupWeek1PDF.ps1"
    • 如果需要后台运行,添加-WindowStyle Hidden参数:powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File "d:\scripts\BackupWeek1PDF.ps1"
    • 若要开机自动启动,可将该命令创建成快捷方式,放到C:\Users\[你的用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录下。

方案二:批处理脚本+任务计划(定时检查触发)

如果不想长期运行监控脚本,可以通过任务计划定时检查文件是否修改,仅当文件更新时执行备份。

  1. 新建文本文件,粘贴以下代码,保存为BackupWeek1.bat(比如存到d:\scripts目录):
@echo off
set "source=d:\homework\week1.pdf"
set "target=e:\backup\week1.pdf"

REM 检查源文件是否存在
if not exist "%source%" (
    echo 错误:源文件不存在 - %source%
    exit /b 1
)

REM 创建目标目录(如果不存在)
if not exist "e:\backup\" mkdir "e:\backup\"

REM 对比源文件和目标文件的内容,不同则复制覆盖
fc /b "%source%" "%target%" >nul
if errorlevel 1 (
    echo 文件已修改,执行备份...
    copy /y "%source%" "%target%"
    echo 备份完成
)
  1. 设置任务计划:
    • 打开「任务计划程序」,点击「创建基本任务」
    • 名称填“自动备份Week1PDF”,点击下一步
    • 触发器选择“每天”或“每隔X分钟”(比如每隔5分钟),设置合适的执行频率,点击下一步
    • 操作选择“启动程序”,程序或脚本填cmd.exe,添加参数填/c "d:\scripts\BackupWeek1.bat",点击下一步
    • 勾选“当单击完成时,打开此任务属性的对话框”,点击完成
    • 在属性窗口中,切换到「设置」标签,勾选“不管用户是否登录都要运行”,并选择“隐藏”窗口,确保脚本后台执行。

方案三:Robocopy监控模式(轻量实时同步)

利用Windows自带的robocopy命令(无需额外脚本),实现指定文件的实时同步。

直接在命令提示符中执行以下命令:

robocopy "d:\homework" "e:\backup" "week1.pdf" /MON:1 /MOT:1 /R:3 /W:5

参数说明:

  • /MON:1:当源目录有1个文件(即week1.pdf)被修改时,立即触发同步
  • /MOT:1:若1分钟内无修改,自动检查一次(避免遗漏临时修改)
  • /R:3:复制失败时重试3次
  • /W:5:重试间隔5秒

如果需要开机自动运行,可将该命令创建成快捷方式,放到启动目录(同方案一的启动目录),或通过任务计划设置开机启动并隐藏窗口。

注意事项

  • 确保执行脚本/命令的账号有源文件的读取权限和目标文件夹的写入权限,必要时右键选择“以管理员身份运行”
  • 若文件经常处于被编辑锁定的状态(比如打开的PDF),可适当延长PowerShell脚本中的Start-Sleep时间,或在批处理中添加延迟命令
  • 所有脚本路径建议使用绝对路径,避免因工作目录变化导致错误

内容的提问来源于stack exchange,提问作者vivian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:40:35