bat脚本监控某个文件夹下是否新增加文件

bat脚本监控某个文件夹下是否新增加文件,第1张

@echo off & title 监控文件 By 依梦琴瑶

color 0a & mode 35,3

::设置要监控的文件

set MtrDir=ABC

::设置要调用�š.bat脚本

set Bat=test.bat

echo æ­£åœ¨åˆå§‹åŒ–记录文件 å’è™š...

(for /f "delims=" %%a in ('dir /a-d/s/b "%MtrDir%\*"') do (

    echo è¡¡æ‚„燃"%%~a"

))>"%tmp%\oFiles.Lst"

:Loop

set "Change="

cls & echo æ­£åœ¨ç›‘控文件夹中 ...

for /f "delims=" %%a in ('dir /a-d/s/b "%MtrDir%"') do (

    findstr /i "^\"%%~a\"$" "%tmp%\oFiles.Lst" >nul || (

        del /f /q "%%~a"

        set Change=1

    )

)

if defined Change (

    echo å‘现新增文件,运弊启动其它脚本。

    start "" "%Bat%"

)

goto Loop

新建一个Console应用程序,项目名称为“FileSystemWatcher”,Copy代码进,编译后就可以用了。代码如下:

using System

using System.Collections.Generic

using System.Text

using System.IO

using System.Security.Permissions

namespace MyFileSystemWatcher

{

public class Watcher

{

public static void Main(string[] args)

{

Run()

}

[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]

public static void Run()

{

string[] args = System.Environment.GetCommandLineArgs()

if (args.Length != 2)

{

Console.WriteLine("使用方式: FileSystemWatcher.exe DirectoryPath")

return

}

FileSystemWatcher watcher = new FileSystemWatcher()

watcher.Path = args[1]

/* 设置为监视 LastWrite 和 LastAccess 时间方面的更改,以及目录中文本文件的创悔兄敬建、删除或重命名。 */

watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite

| NotifyFilters.FileName | NotifyFilters.DirectoryName

// 只监控.txt文件

watcher.Filter = "*.txt"

// 添加事件处理器。

watcher.Changed += new FileSystemEventHandler(OnChanged)

watcher.Created += new FileSystemEventHandler(OnChanged)

watcher.Deleted += new FileSystemEventHandler(OnChanged)

watcher.Renamed += new RenamedEventHandler(OnRenamed)

// 开始监控。

watcher.EnableRaisingEvents = true

// 输入q推出程序。

Console.WriteLine("按 \'q\' 推出程序。")

while (Console.Read() != 'q') 

}

// 定义事件处理器。

private static void OnChanged(object source, FileSystemEventArgs e)

{

//如果更改、创建或删除文件,文件路径将被输出到控制台。

Console.WriteLine("文件: " + e.FullPath + " " 碧慎+ e.ChangeType)

}

private static void OnRenamed(object source, RenamedEventArgs e)

{

// 在文件重命名后,旧路径和新路径都输出到控制台。

Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath)

}

}

}

使用说明(具体看尘烂图):

1、打开cmd窗口,先定位到FileSystemWatcher.exe所在的文件夹目录;

2、输入【FileSystemWatcher.exe 文件夹目录名称】,回车;

3、在监控的文件夹目录中增删改文件,就可以看见监控结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12208452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存