标题: 20元求批处理程序检测一个文件夹里是否出现一个文件 [打印本页]
作者: 925697663 时间: 2019-6-5 18:55 标题: 20元求批处理程序检测一个文件夹里是否出现一个文件
本帖最后由 925697663 于 2019-6-5 19:24 编辑
先说下要求哈
1、根据文件名字获取一个文件A.txt(如果能根据文件首字节获取文件特征也可以)
2、如果文件修改时间超过某个日期B电脑就自动关机,如果不超过就等待1分钟后再检测一次.
3、运行的时候隐藏窗口
4、开机能够自启动最好
谢谢各位大佬了:)
支持微信转账
作者: Batcher 时间: 2019-6-5 19:07
如果不出现这个文件呢?隔几秒钟再次检测吗
作者: happy886rr 时间: 2019-6-5 19:09
回复 1# 925697663 - @echo off
- :main
- if exist .\"要检测的文件" (
- for %%a in ("另外一个文件") do (
- if not "%%~ta"== "你设定的时间" (
- shutdown -r -t 0
- )
- )
- )
-
- goto main
-
- pause
复制代码
把具体文件名时间告诉下,好给你填上。
作者: 925697663 时间: 2019-6-5 19:11
回复 2# Batcher
是的隔几秒再检测
最好运行的时候把窗口隐藏掉
作者: hongrk 时间: 2019-6-5 19:17
- @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:22
复制代码
作者: hongrk 时间: 2019-6-5 19:22
回复 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)
复制代码
作者: Batcher 时间: 2019-6-5 19:24
- @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 两个文件的修改日期时间相等
- )
- pause
复制代码
作者: hongrk 时间: 2019-6-5 19:24
对了,如果发现就是这个值,是否还需要做什么?还是直接关闭程序就行
作者: hongrk 时间: 2019-6-5 19:28
问几个问题:
①是全盘搜索吗?
②A.txt有几个?
作者: 925697663 时间: 2019-6-5 19:28
回复 7# Batcher
大佬我刚才没说清楚,我稍微修改了下要求,谢谢了
作者: 925697663 时间: 2019-6-5 19:32
回复 9# hongrk
是的,A只有一个
作者: hongrk 时间: 2019-6-5 19:35
本帖最后由 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 begin
复制代码
作者: hongrk 时间: 2019-6-5 19:35
还是有一些不明白意思的地方,希望可以一一回答一下:
是否是全盘搜索,或者盘是确定的?
如果发现修改日期没问题,还要不要再继续检查?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |