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

[文件操作] [已解决]批处理如何监控某盘,一旦出现某文件,系统就会出反应

最近工作上,遇到一个问题。在E盘会产生一个如abc.dat格式的文件,当这个文件大到60K以上时,就会导致系统运行的主程序网断,影响数据传输。退出主程序,网络也是畅通的。
恳求各位高手,让通过批处理或者VBA实现对E盘的监控,我想实现五种任意一种,来一劳永逸地解决这一难题。
【改名】
方案一
循环监控E盘,一旦产生该文件,立即自动改名。因为该文件可能十天半月出现一次,希望能实现出现一次,改一次名,并且每次名字最好顺延。比如第一次是abc0.dat,第二次就是abc1.dat
方案二
循环监控E盘,当该文件产生到15K时,立即自动改名。以后出现一次,改一次名,每次名字顺延。
【移动】
方案三
循环监控E盘,一旦产生该文件,立即自动移动到G盘新建立的abc文件夹。以后每次出现一次,就移动一次,每次文件名顺延。
方案四
循环监控E盘,当该文件产生到15K时,立即自动移动到G盘新建立的abc文件夹。以后该文件每达到15K,就移动一次,每次文件名顺延。
【阻止】
循环监控E盘,一旦该文件出现,立即删除。或者是循环监控E盘,随时阻止该文件的出现。
万望各位大佬、高手在闲暇时,多多指教,不胜感激。

本帖最后由 福垊 于 2021-4-5 15:59 编辑

回复 2# binghejin
经测试,效果很好,效率很高。只是这个bat文件,删除之后,影响系统,那么能不能对它改名改名或移动呢?
再次感谢。

TOP

本帖最后由 福垊 于 2021-4-5 16:03 编辑

回复 3# 追梦人
经亲测很好很强大,谢谢。请问能不能将删除改为重命名或者移动呢?因为删除该文件后,影响系统。另外是超过15K,不是15秒。

TOP

本帖最后由 福垊 于 2021-4-5 16:23 编辑

@追梦人 大神,我简单修订了您的代码,来实现重命名。
:start
if exist e:\abc.dat (
         ren abc.dat abc0.dat
        goto start
) else (
        rem 不存在,休息15秒,再检查
        timeout 15
        goto start
)

可只要一出现就会顺延重命名怎么实现呢?
可如何再出现一个abc.dat,我想把它命名为abc1 .bat怎么实现。
总之,只要出现abc.dat,就立即重命名,并以此为abc1、 abc2、abc3……,这样循环下去。

TOP

:start
if exist e:\abc.dat (
        ren abc.dat abc0.dat
ren abc.dat abc1.dat
ren abc.dat abc2.dat
ren abc.dat abc3.dat
ren abc.dat abc4.dat
ren abc.dat abc5.dat
ren abc.dat abc6.dat
ren abc.dat abc7.dat
ren abc.dat abc8.dat
ren abc.dat abc9.dat
ren abc.dat abc10.dat
ren abc.dat abc11.dat
ren abc.dat abc12.dat
        goto start
) else (
        rem 不存在,休息15秒,再检查
        timeout 15
        goto start
)

没有好办法,只有通过笨法来实现了。

@追梦人 @binghejin

TOP

回复 9# smss

大佬,产生的第一个abc.bat能修改为abc0.bat。产生第二abc.bat提示重命名冲突,而不是改为abc1.bat。还请大佬再看看,谢谢。

TOP

回复 7# newgain


    有影响啊,会导致主程序网断的。

TOP

回复 16# newgain


    经测试,效果不错,按时间排序,谢谢。

TOP

回复 13# qixiaobin0715


    刚才测试了一下,效果很好,只是到了该重命名009时,提示存在一个重命名文件,新产生的abc.bat,无法改名为abc009.bat 。

TOP

回复 15# newgain


    非常感谢,应该会有办法的。

TOP

回复 16# newgain


set ntime=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
【请问这是设定什么时间和日期,数值的意思是什么?】
for /f "delims=" %%i in ("e:\abc.dat") do (
【请问,这里的分隔符,切割文本的作用是什么?】
if %%~zi geq 15360 (
如果文件大于等于15K,可这里的360是什么意思呢?360天吗?
还请高手大佬指教,谢谢。

TOP

回复 20# qixiaobin0715
原来如此

TOP

回复 22# hlzj88 非常感谢。

TOP

本帖最后由 福垊 于 2021-4-9 17:39 编辑

终于搞定了

TOP

返回列表