0

私のシナリオでは、特定のフォルダー内のファイルをチェックし、それが存在するかどうかをチェックしています。それが存在する場合、私はそれに対していくつかの操作を行っています。しかし、私の問題は、これらのファイルが他のプロセスによって生成されていることです [通常、ファイルを生成するのに20〜30分かかります]。さて、その操作を続行できるように、現在進行中ではないことを確認する必要があります。以下は私が使用しているコードスニペットです:

EDIT 私の質問は、ファイルが他のプロセスによって使用されていない(または生成されている)ことをどのように特定できるかということです。

    $Filesitems = Get-ChildItem -Path "D:\SomeFolder\Sub_Folder"


foreach ($objItem in $Filesitems)
{

      if ($objItem.Name.Contains("Process"))
      {
            Write-Host $objItem.Name
      }
}
4

1 に答える 1

0

この動作を回避するために、おそらく「ロック」ファイルを使用しようとします。

プロセスがファイルで作業するときはいつでも、プロセスが (空の) file.lock ファイルも生成し、プロセスがファイルで作業を終了したときにそれを削除するようにしてください。

このシナリオでは、ロックファイルが存在するかどうかを確認できるため、別のプロセスがその特定のファイルでまだ作業中であることがわかります

于 2013-03-27T16:53:10.500 に答える