找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18650|回复: 1

[文本处理] 文件监控的批处理代码请协助修改

[复制链接]
发表于 2023-10-31 01:01:40 | 显示全部楼层 |阅读模式
要实现实时监控目标文件夹的文件数量,显示目标文件夹的文件数量,当在目标文件夹的文件数量小于2时,从主目录的多个文件夹中移动文件到目标文件夹(同名文件不进行替换处理),可以使用批处理脚本结合循环和定时器的方式来实现。以下是一个示例的批处理脚本:
  1. @echo off

  2. set "main_folder=C:\path\to\main_folder"
  3. set "target_folder=C:\path\to\target_folder"
  4. set "file_limit=2"
  5. set "interval_seconds=10"

  6. :monitor
  7. REM 获取目标文件夹中的文件数量
  8. set "target_files=0"
  9. for /f %%f in ('dir /a-d /b "%target_folder%\*" 2^>nul ^| find /v /c ""') do set "target_files=%%f"

  10. REM 显示目标文件夹的文件数量
  11. echo Target folder file count: %target_files%

  12. REM 如果目标文件夹中的文件数量小于设定的限制
  13. if %target_files% lss %file_limit% (
  14.     REM 遍历主目录下的子目录
  15.     for /d %%d in ("%main_folder%\*") do (
  16.         REM 遍历子目录中的文件
  17.         for /r "%%d" %%f in (*) do (
  18.             REM 检查目标文件夹中是否已存在同名文件
  19.             if not exist "%target_folder%\%%~nxf" (
  20.                 REM 将文件移动到目标文件夹
  21.                 move "%%f" "%target_folder%"
  22.             )
  23.         )
  24.     )
  25. )

  26. REM 等待一段时间后再次监控
  27. timeout /t %interval_seconds% >nul
  28. goto monitor
复制代码
在脚本中,你需要将 main_folder 和 target_folder 的路径替换为实际的文件夹路径,并根据需要调整 file_limit 的值,表示目标文件夹的文件数量限制。同时,你可以根据需要调整 interval_seconds 的值,表示监控的时间间隔(以秒为单位)。

脚本会不断循环监控目标文件夹的文件数量,并在目标文件夹的文件数量小于设定的限制时,从主目录的多个文件夹中移动文件到目标文件夹。移动文件的操作使用 move 命令,并通过检查目标文件夹中是否已存在同名文件来避免替换文件。

脚本会每隔指定的时间间隔执行一次监控操作,并使用 timeout 命令来等待一段时间。在每次监控时,脚本会显示目标文件夹的文件数量。你可以根据需要调整 interval_seconds 的值来设置监控的频率。
请大神帮忙看下哪里不对,帮忙修改下
发表于 2023-10-31 07:37:59 | 显示全部楼层
  1. REM 如果目标文件夹中的文件数量小于设定的限制
  2. if %target_files% lss %file_limit% (
  3.     REM 遍历主目录下的子目录
  4.     for /d %%d in ("%main_folder%\*") do (
  5.         REM 遍历子目录中的文件
  6.         pushd "%%d"
  7.         for %%f in (*) do (
  8.             REM 检查目标文件夹中是否已存在同名文件
  9.             if not exist "%target_folder%\%%~nxf" (
  10.                 REM 将文件移动到目标文件夹
  11.                 move "%%f" "%target_folder%"
  12.             )
  13.         )
  14.         popd
  15.     )
  16. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 09:20 , Processed in 0.016736 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表