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

[文本处理] 求助批处理监控目录文件写入?

[复制链接]
发表于 2020-2-24 10:46:28 | 显示全部楼层 |阅读模式
请教,如何做到监控一个指定目录的文件写入如 c:/pdf

如果检测到pdf目录下有pdf文件写入就执行后面的命令,否则一直保持待命状态待监控目录状态。

另外请教些pdf文件能用SHA1判断是否是同一个文件吗?



顺便讨论下我写的这段FTP的判断与上传的可行性。因为ftp没有返回值,所以通过http返回值先确认下链接是否正常。我发现失败的返回值都是高于226 所以我下了个这样的判断。不知是否合理。
  1. @echo off
  2. rem 新建当日目录并上传文件
  3. @setlocal ENABLEDELAYEDEXPANSION
  4. @set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
  5. @md D:\backup\%today%
  6. for /f %%i in ('curl -so /dev/null -w %%{http_code} ftp://用户名:密码@IP地址:端口') do (
  7. set ret=%%i
  8. )
  9. if %ret% LEQ 226 (
  10. Echo bye
  11. Echo open IP地址>ftp.up
  12. Echo 用户名>>ftp.up
  13. Echo 密码>>ftp.up
  14. rem Echo Cd .\User >>ftp.up
  15. Echo binary>>ftp.up
  16. Echo prompt >>ftp.up
  17. Echo lcd "D:\Pdf">>ftp.up
  18. Echo mput "D:\Pdf\*.pdf">>ftp.up
  19. Echo bye>>ftp.up
  20. FTP -s:ftp.up
  21. rem del/s/q D:\Pdf\*
  22. del ftp.up /q
  23. Xcopy /y "D:\Pdf\*.pdf" D:\backup\%today%
  24. del /f/s/q "D:\Pdf\*.pdf"
  25. ) else (
  26. exit
  27. )
  28. exit
复制代码
发表于 2020-2-24 13:49:29 | 显示全部楼层
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. set "folder=C:\pdf"
  6. if not exist "%folder%" (echo;"%folder%" no found&goto end)
  7. set n=0
  8. for /f "delims=" %%a in ('dir /a-d/b "%folder%\*.pdf" 2^>nul') do set /a n+=1
  9. :loop
  10. set m=0
  11. for /f "delims=" %%a in ('dir /a-d/b "%folder%\*.pdf" 2^>nul') do set /a m+=1
  12. if %m% gtr %n% (goto jump)
  13. :back
  14. set n=%m%
  15. >nul ping /n 3 0
  16. goto loop
  17. :jump
  18. echo;执行后面的命令
  19. goto back
  20. :end
  21. echo;%info%
  22. pause
  23. exit
复制代码

评分

参与人数 1技术 +1 收起 理由
leoi + 1 问题解决了,谢谢

查看全部评分

 楼主| 发表于 2020-2-25 01:25:41 | 显示全部楼层
本帖最后由 leoi 于 2020-2-26 08:47 编辑

改成这样把问题解决了。谢谢你

@echo off
set info=互助互利,支付宝扫码头像,感谢赞助
rem 有问题,可加QQ956535081及时沟通
title %info%
set "folder=C:\pdf"
if not exist "%folder%" (echo;"%folder%" no found&goto end)
set n=0
for /f "delims=" %%a in ('dir /a-d/b "%folder%\*.pdf" 2^>nul') do set /a n+=1
:loop
set m=0
for /f "delims=" %%a in ('dir /a-d/b "%folder%\*.pdf" 2^>nul') do set /a m+=1
>nul ping /n 3 0
if %m% gtr %n% (goto jump)
:back
set m=%n%
>nul ping /n 3 0
goto loop
:jump
echo;执行后面的命令
goto back
:end
echo;%info%
pause
exit
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 14:27 , Processed in 0.023758 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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