[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

要实现实时监控目标文件夹的文件数量,显示目标文件夹的文件数量,当在目标文件夹的文件数量小于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 的值来设置监控的频率。
请大神帮忙看下哪里不对,帮忙修改下
学习

  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. )
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表