前提・実現したいこと
・前提
windowsサーバにてpowershellでループ処理を作成しています
・やりたいこと
powershellスクリプトを実行し、<C:\test>配下のファイル更新時間が30分経過したのを確認後、後続のbatを実行する処理を作成したいです。
日中に動く処理の為、日跨ぎは起きないので、日付は考慮してません。
C:\test配下にはyyyymmdd.log形式で名付けられたファイルが有ります。
発生している問題・エラーメッセージ
想定では、C:\test配下のyyyymmdd.logの最終更新時間が30分を超えたら$test1変数に値が入り、後続のbatが起動する想定でしたが、30分未満でもループせずに抜けてしまい、想定と異なる動作ににります。
powershellを今まで使ったことが無く、煮詰まってしまい期限に追われ始めてしまいました。ループ処理の部分で引っかかっていますが、何が悪いのかすら分からない為、ご指摘とご指導を頂きたいです。
該当のソースコード
作業ディレクトリ移動
cd C:\test
$test1に変数代入
$test1 = ""
変数$test1に30分経過したファイルの抽出内容を入れる。30分経過していなければ、変数に入るまでループする。
変数に値が入れば次の処理へ。
(nullでなければといった処理も考えましたが、上手く動きませんでした。)
do { $test1 = Get-ChildItem |
? { $.LastWriteTime.Date -eq (Get-Date).Date } |
? { $ -is [System.IO.FileInfo] } |
? { $_.LastWriteTime -lt [datetime]::Now.AddMinutes( -30 ) }
while ( $test1 -eq "" )
$test1に変数の値が有ればループを抜けてbatファイル実行としたい
C:\temp\bat\A.bat
試したこと
実機で試しましたが、原因が分からず。。。
WEB検索もしましたが、欲しい回答にたどり着けなかった為、こちらに質問させて頂きました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。