返回列表 发帖

20元求批处理程序检测一个文件夹里是否出现一个文件

本帖最后由 925697663 于 2019-6-5 19:24 编辑

先说下要求哈
1、根据文件名字获取一个文件A.txt(如果能根据文件首字节获取文件特征也可以)
2、如果文件修改时间超过某个日期B电脑就自动关机,如果不超过就等待1分钟后再检测一次.
3、运行的时候隐藏窗口
4、开机能够自启动最好
谢谢各位大佬了:)
支持微信转账

如果不出现这个文件呢?隔几秒钟再次检测吗
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# 925697663
@echo off
:main
if exist .\"要检测的文件" (
for %%a in ("另外一个文件") do (
if not "%%~ta"== "你设定的时间" (
shutdown -r -t 0
)
)
)
goto main
pauseCOPY
把具体文件名时间告诉下,好给你填上。

TOP

回复 2# Batcher


    是的隔几秒再检测
最好运行的时候把窗口隐藏掉

TOP

@echo off
for /R "文件夹路径" %%i in (*.*) do (
if "%%~nxi"=="你要的文件名与其扩展名" call :next
)
:next
for %%i in ("另外一个文件的路径")do if not "%%~ti"=="另一个值" (shutdown -s)
exit
rem 有空格的话最好用引号包起来,上面格式已经帮你包好了
rem 文件夹路径格式:E:\新建文件夹
rem 文件夹路径格式:E:\新建文件夹\123.txt
rem 时间格式:2019/05/31 13:22COPY

TOP

回复 5# hongrk

这个能满足你目前所说的要求
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
for /R "文件夹路径" %%i in (*.*) do (
if "%%~nxi"=="你要的文件名与其扩展名" call :next
)
ping -n 5 127.0.0.1
goto begin
:next
for %%i in ("另外一个文件的路径")do if not "%%~ti"=="另一个值" (shutdown -s)COPY

TOP

@echo off
REM 设置待检测的文件夹和文件
set "CheckFileName=D:\Test\BatHome.txt"
REM 设置待比较的文件
set "CompareFileName=D:\Test\Batcher.txt"
:Begin
if not exist "%CheckFileName%" (
    echo 未发现文件 "%CheckFileName%"
    echo 大约10秒之后再次自动检测
    ping -n 10 127.0.0.1 >nul
    goto :Begin
)
for %%i in ("%CheckFileName%") do (
    set "CheckFileTime=%%~ti"
)
for %%i in ("%CompareFileName%") do (
    set "CompareFileTime=%%~ti"
)
echo %CheckFileTime% --- %CheckFileName%
echo %CompareFileTime% --- %CompareFileName%
if "%CheckFileTime%" neq "%CompareFileTime%" (
    echo 两个文件的修改日期时间不相等
    echo 10秒之后自动关机
    shutdown /f /s /t 10
) else (
    echo 两个文件的修改日期时间相等
)
pauseCOPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

对了,如果发现就是这个值,是否还需要做什么?还是直接关闭程序就行

TOP

问几个问题:
①是全盘搜索吗?
②A.txt有几个?

TOP

回复 7# Batcher


    大佬我刚才没说清楚,我稍微修改了下要求,谢谢了

TOP

回复 9# hongrk


    是的,A只有一个

TOP

本帖最后由 hongrk 于 2019-6-5 20:27 编辑
@echo off
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v wkdxz /t reg_sz /d %0 /f
set B=日期
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
for %%a in (C D E F G H I)do (
for /R "%%a:" %%i in (*.*) do (
if "%%~nxi"=="A.txt" if not "%%~ti"=="%B%" shutdown -s
)
)
ping -n 60 127.0.0.1
goto beginCOPY

TOP

还是有一些不明白意思的地方,希望可以一一回答一下:

是否是全盘搜索,或者盘是确定的?

如果发现修改日期没问题,还要不要再继续检查?

TOP

返回列表