欢迎光临重庆市万年长
详情描述

方法一:使用批处理循环监控

@echo off
setlocal enabledelayedexpansion

:: 配置参数
set "SOURCE_FOLDER=C:\LocalFolder"
set "DESTINATION_FOLDER=\\RemoteServer\SharedFolder"
set "CHECK_INTERVAL=5"  :: 检查间隔(秒)

:: 创建已处理文件列表
set "PROCESSED_FILE=%TEMP%\processed_files.txt"
if not exist "%PROCESSED_FILE%" (
    type nul > "%PROCESSED_FILE%"
)

echo 开始监控文件夹: %SOURCE_FOLDER%
echo 目标文件夹: %DESTINATION_FOLDER%
echo 检查间隔: %CHECK_INTERVAL%秒
echo 按 Ctrl+C 停止监控
echo.

:monitor
:: 获取当前文件列表
set "current_files=%TEMP%\current_files.txt"
dir /b "%SOURCE_FOLDER%\*" > "%current_files%" 2>nul

:: 比较新旧文件
for /f "delims=" %%f in ('fc "%PROCESSED_FILE%" "%current_files%" ^| findstr /r "^>"') do (
    set "new_file=%%f"
    set "new_file=!new_file:~2!"

    if not "!new_file!"=="" (
        set "source_path=%SOURCE_FOLDER%\!new_file!"
        set "dest_path=%DESTINATION_FOLDER%\!new_file!"

        echo [%time%] 发现新文件: !new_file!

        :: 复制文件到远程文件夹
        copy "!source_path!" "!dest_path!" >nul
        if !errorlevel! equ 0 (
            echo [%time%] 成功复制: !new_file! 到远程文件夹
        ) else (
            echo [%time%] 错误: 复制失败
        )
    )
)

:: 更新已处理文件列表
copy "%current_files%" "%PROCESSED_FILE%" >nul

:: 等待指定时间
timeout /t %CHECK_INTERVAL% /nobreak >nul

goto monitor

方法二:使用 Windows 内置的 robocopy(推荐)

@echo off
setlocal enabledelayedexpansion

:: 配置参数
set "SOURCE_FOLDER=C:\LocalFolder"
set "DESTINATION_FOLDER=\\RemoteServer\SharedFolder"
set "CHECK_INTERVAL=10"  :: 检查间隔(秒)

echo 开始监控文件夹: %SOURCE_FOLDER%
echo 目标文件夹: %DESTINATION_FOLDER%
echo 使用 robocopy 监控模式
echo 按 Ctrl+C 停止监控
echo.

:monitor
echo [%date% %time%] 正在检查新文件...

:: 使用 robocopy 监控模式
:: /MON:1 - 监控文件,发现1个更改就退出
:: /MOT:1 - 监控时间间隔1分钟
:: /E - 包含空目录
:: /Z - 可重启模式
:: /R:3 - 重试3次
:: /W:5 - 等待5秒
robocopy "%SOURCE_FOLDER%" "%DESTINATION_FOLDER%" /MON:1 /MOT:%CHECK_INTERVAL% /E /Z /R:3 /W:5 /NP /NJH /NJS

:: 如果 robocopy 发现文件会返回小于8的错误码
if !errorlevel! LSS 8 (
    echo [%date% %time%] 已同步新文件
) else if !errorlevel! EQU 8 (
    echo [%date% %time%] robocopy 运行时间超过30秒
)

goto monitor

方法三:增强版脚本(包含日志记录)

@echo off
setlocal enabledelayedexpansion

:: 配置参数
set "SOURCE_FOLDER=C:\LocalFolder"
set "DESTINATION_FOLDER=\\RemoteServer\SharedFolder"
set "CHECK_INTERVAL=10"
set "LOG_FILE=C:\Logs\FileMonitor_%date:~0,4%%date:~5,2%%date:~8,2%.log"

:: 创建日志目录
for %%f in ("%LOG_FILE%") do (
    set "LOG_DIR=%%~dpf"
)
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"

:: 初始化日志
echo ======================================= >> "%LOG_FILE%"
echo 监控开始时间: %date% %time% >> "%LOG_FILE%"
echo 源文件夹: %SOURCE_FOLDER% >> "%LOG_FILE%"
echo 目标文件夹: %DESTINATION_FOLDER% >> "%LOG_FILE%"
echo ======================================= >> "%LOG_FILE%"

:: 检查文件夹是否存在
if not exist "%SOURCE_FOLDER%" (
    echo [ERROR] 源文件夹不存在: %SOURCE_FOLDER%
    echo [ERROR] 源文件夹不存在: %SOURCE_FOLDER% >> "%LOG_FILE%"
    pause
    exit /b 1
)

echo 文件监控服务已启动...
echo 按 Ctrl+C 停止监控

:monitor
set "timestamp=%date% %time%"
set "has_changes=0"

:: 检查并复制新文件
for /f "delims=" %%f in ('dir /b /a-d "%SOURCE_FOLDER%\*" 2^>nul') do (
    set "source_file=%SOURCE_FOLDER%\%%f"
    set "dest_file=%DESTINATION_FOLDER%\%%f"

    :: 检查目标文件是否已存在或较旧
    if not exist "!dest_file!" (
        copy "!source_file!" "%DESTINATION_FOLDER%\" >nul
        if !errorlevel! equ 0 (
            echo [!timestamp!] 已复制: %%f >> "%LOG_FILE%"
            echo [!timestamp!] 已复制: %%f
            set "has_changes=1"
        ) else (
            echo [!timestamp!] 复制失败: %%f >> "%LOG_FILE%"
            echo [!timestamp!] 复制失败: %%f
        )
    ) else (
        :: 比较文件时间戳
        for %%s in ("!source_file!") do set "source_time=%%~ts"
        for %%d in ("!dest_file!") do set "dest_time=%%~td"
        if "!source_time!" gtr "!dest_time!" (
            copy /y "!source_file!" "%DESTINATION_FOLDER%\" >nul
            echo [!timestamp!] 已更新: %%f >> "%LOG_FILE%"
            echo [!timestamp!] 已更新: %%f
            set "has_changes=1"
        )
    )
)

if %has_changes% equ 0 (
    echo [!timestamp!] 没有发现新文件 >> "%LOG_FILE%"
)

:: 等待下一次检查
timeout /t %CHECK_INTERVAL% /nobreak >nul

goto monitor

方法四:作为 Windows 服务运行的版本

创建一个 install_service.bat

@echo off
:: 安装为 Windows 服务
sc create FolderMonitor binPath= "%~dp0monitor_service.bat" DisplayName= "文件夹监控服务" start= auto
sc description FolderMonitor "监控文件夹并复制新文件到远程位置"
echo 服务已创建,使用 sc start FolderMonitor 启动服务

创建 monitor_service.bat

@echo off
:: 作为服务运行的监控脚本
:begin
call :main_monitor
timeout /t 60 /nobreak >nul
goto begin

:main_monitor
set "source=C:\WatchFolder"
set "dest=\\RemoteServer\ShareFolder"

robocopy "%source%" "%dest%" /e /z /mon:1 /mot:10 /r:3 /w:5 /np /nfl /ndl
exit /b

使用方法:

方法一:简单循环监控,适合简单场景 方法二:使用 robocopy,功能强大且稳定(推荐) 方法三:包含完整日志记录,适合生产环境 方法四:可作为服务运行,适合服务器环境

注意事项:

权限要求

  • 需要有源文件夹的读取权限
  • 需要有目标文件夹的写入权限
  • 如果是网络路径,可能需要映射网络驱动器或使用 UNC 路径

网络路径示例

set "DESTINATION_FOLDER=\\192.168.1.100\SharedFolder"
:: 或者
net use Z: \\RemoteServer\SharedFolder /user:username password /persistent:yes
set "DESTINATION_FOLDER=Z:\"

文件过滤

:: 只监控特定类型文件
dir /b "%SOURCE_FOLDER%\*.txt" "%SOURCE_FOLDER%\*.docx"

错误处理:建议添加网络连接检查和重试机制

选择适合你需求的版本,根据需要调整参数即可。

相关帖子
未来人才公寓的准入政策,是否会向科技创新等特定行业领域倾斜?
未来人才公寓的准入政策,是否会向科技创新等特定行业领域倾斜?
重庆市企业获客助手&专业网站开发设计,提供一站式建站服务
重庆市企业获客助手&专业网站开发设计,提供一站式建站服务
重庆市殡葬一条龙服务价格|丧葬礼仪服务公司,丧礼布置
重庆市殡葬一条龙服务价格|丧葬礼仪服务公司,丧礼布置
2026年以旧换新活动是否涵盖安装、拆卸等后续服务费用?
2026年以旧换新活动是否涵盖安装、拆卸等后续服务费用?
重庆市资讯网站开发|营销型网站建设,多年专业建站经验
重庆市资讯网站开发|营销型网站建设,多年专业建站经验
吴忠市殡葬一条龙服务公司电话|办理白事服务,一流的质量
吴忠市殡葬一条龙服务公司电话|办理白事服务,一流的质量
2026年,面对市场上琳琅满目的有机食品,普通消费者该如何快速辨别真伪与认证标识?
2026年,面对市场上琳琅满目的有机食品,普通消费者该如何快速辨别真伪与认证标识?
克拉玛依市正规殡葬服务|丧葬一条龙价格,殡葬悼念会
克拉玛依市正规殡葬服务|丧葬一条龙价格,殡葬悼念会
呼和浩特市购物网站开发建设&网站开发正规公司,一站式服务
呼和浩特市购物网站开发建设&网站开发正规公司,一站式服务
哈尔滨市殡葬服务公司一站式办理-白事服务办理,价格公道,快速上门
哈尔滨市殡葬服务公司一站式办理-白事服务办理,价格公道,快速上门
社区出于安全考虑实施严格管控,却影响了邻里正常交往,如何找到平衡点?
社区出于安全考虑实施严格管控,却影响了邻里正常交往,如何找到平衡点?
丹阳市网站制作设计|精准获客引流,多年建站经验
丹阳市网站制作设计|精准获客引流,多年建站经验
在复杂的城市路口,如何平衡“让速不让道”原则与其他交通规则?
在复杂的城市路口,如何平衡“让速不让道”原则与其他交通规则?
新乡市小视频营销推广&商城网站搭建,定制建站
新乡市小视频营销推广&商城网站搭建,定制建站
石嘴山市殡仪服务公司电话|出租冰棺服务,全城服务
石嘴山市殡仪服务公司电话|出租冰棺服务,全城服务
乌海市网站开发|企业获客软件,高端网站开发设计
乌海市网站开发|企业获客软件,高端网站开发设计
在公园、小区等公共场合,放任狗狗自由奔跑可能引发哪些潜在风险?
在公园、小区等公共场合,放任狗狗自由奔跑可能引发哪些潜在风险?
宜春市办理殡葬服务|丧事一站式服务,白事花圈
宜春市办理殡葬服务|丧事一站式服务,白事花圈
普通家庭在日常消费中,应当注意保存哪些类型的票据以备可能的税务核查?
普通家庭在日常消费中,应当注意保存哪些类型的票据以备可能的税务核查?
乌鲁木齐市殡葬一条龙|办理丧葬服务,殡礼吊唁
乌鲁木齐市殡葬一条龙|办理丧葬服务,殡礼吊唁