【问题标题】:monitor for creation and then read a file via windows .bat script监视创建,然后通过 windows .bat 脚本读取文件
【发布时间】:2013-07-17 21:11:05
【问题描述】:

我想编写一个批处理脚本,它会在某个时间限制内轮询 windows 目录,并在文件放入目录后立即选择一个文件。 如果文件在该时间范围内没有放在该目录中,它也会在一定时间后超时。

我还想解析 xml 文件并检查状态。

【问题讨论】:

  • 你需要一门真正的编程语言。批处理文件不会完成工作。您可能可以使用 PowerShell 脚本。
  • 使用 Powershell 或VBS
  • VBScript example 用于文件夹监视器。
  • 有可能,这取决于您的定义和说明。 “时间限制”不会出现在 Windows 目录中,AFAIAA。您如何指定“特定时间”、“时间限制”、“状态”和“xml 文件”?到目前为止,您有哪些代码无法正常工作?以何种方式无法正常工作?
  • 为什么需要投票?不能让windows给你提供文件夹更改通知吗?

标签: windows powershell batch-file vbscript polling


【解决方案1】:

这是一个 PowerShell 脚本,可以满足您的要求。

$content 变量将存储文件的内容(它实际上是一个行数组,因此您可以将其放入 foreach 循环中)。

$file = 'C:\flag.xml'
$timeout = New-TimeSpan -Minutes 1
$sw = [diagnostics.stopwatch]::StartNew()
while ($sw.elapsed -lt $timeout)
{
    if (Test-Path $file)
    {
        "$(Get-Date -f 'HH:mm:ss') Found a file: $file"
        $content = gc $file
        if ($content -contains 'something interesting')
        {
            "$(Get-Date -f 'HH:mm:ss') File has something interesting in it!"
        }
        break
    }
    else
    {
        "$(Get-Date -f 'HH:mm:ss') Still no file: $file"
    }
    Start-Sleep -Seconds 5
}

【讨论】:

  • 欢迎来到 SO。对我来说,这看起来像是一个 powershell 脚本。对于未来的读者,将其添加到您的答案中会很有用。
  • 我认为这是一个基本要求,脚本会轮询目录并等待文件到达硬编码的时间值。它需要做的就是逐行读取文件并检查特定标签。我还没有尝试过代码。我只是在寻找选项并检查它是否可以使用批处理文件来实现。
猜你喜欢
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
相关资源
最近更新 更多