用于轮询文件夹中的新文件的批处理文件

用于轮询文件夹中的新文件的批处理文件

我想编写一个批处理文件,每当有新文件添加到特定文件夹时就会触发该文件。

我可以使用 schtasks 安排任务。但我正在寻找一种基于中断而不是轮询的解决方案。还有其他方法吗?

答案1

有一种方法可以实现您想要的功能,在 Linux/Unix 上称为 iNotify,操作系统可以根据其“监视”的目录中的活动运行脚本。Windows 和 Mac 具有类似的功能,只是名称不同。

stackoverflow 上的问题涵盖了各种操作系统的所有选项

通知是一个不错的选择,它用 Java 编写,可以在所有操作系统上运行。它需要编写一些 Java 代码,不确定您是否正在寻找这种选项。

答案2

批处理无法轮询,但您可以尝试这个 VBScript:

Option Explicit

Const Path = "%userprofile%\Documents\Folder"
Const Interval = 1
Const Delay = 60

Dim oWSH, oFSO, oWMI, oEvent, oTarget, colEvents
Dim sPath, sDrive, sFolder, sNewPath

Set oWSH = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
oWSH.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName)
sPath = oWSH.ExpandEnvironmentStrings(Path)
sPath = oFSO.GetAbsolutePathName(sPath)
If Not oFSO.FolderExists(sPath) Then oFSO.CreateFolder(sPath) 
sDrive = oFSO.GetDriveName(sPath)
sFolder = Replace(Mid(sPath, 3) & "\", "\", "\\", 1, -1, vbTextCompare)

Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colEvents = oWMI.ExecNotificationQuery( _
  "SELECT * FROM __InstanceCreationEvent" _
  & " WITHIN " & CStr(Interval) _
  & " WHERE Targetinstance ISA 'CIM_DataFile'" _
  & " AND TargetInstance.Drive='" & sDrive & "'"_
  & " AND TargetInstance.Path='" & sFolder & "'") 

Do 
  Set oEvent = colEvents.NextEvent()
  sNewPath = Year(Now) & "_" & Right("0" & Month(Now), 2) & "_" & Right("0" & Day(Now), 2)
  sNewPath = oFSO.BuildPath(sPath, sNewPath)
  If Not oFSO.FolderExists(sNewPath) Then oFSO.CreateFolder(sNewPath)
  Set oTarget = oEvent.TargetInstance
  WScript.Sleep Delay * 1000
  On Error Resume Next
  oFSO.MoveFile oTarget.Name, oFSO.BuildPath(sNewPath, oFSO.GetFileName(oTarget.Name))
  On Error Goto 0
Loop

答案3

我们使用的工具是http://www.myassays.com/folder-poll就是为了实现这一点。它是一个 Windows 应用程序,包含一个用户友好的管理器应用程序,以便于配置。此外,还有一个 XML 配置选项。实际文件夹轮询作为 Windows 服务运行(因此每次重新启动时都会自动启动)。当在轮询文件夹中检测到新文件时,可以自动启动应用程序(您可以指定自己的自定义命令行参数)。它还可以执行其他操作,例如复制/移动文件。此外,可以将活动记录到日志文件中,还有其他高级操作。请注意,这是一个商业工具(即不免费)。

相关内容