動作環境
Windows 8.1 pro (64bit)
Vivadoの処理終了通知をSlackで行うため、終了条件を探そうとしている。
Generate Block Designの終了状況はわかった。
次はRun Synthesisの終了時の状況の把握。
Powershellで更新が最後のファイルを探そうとしている。
指定日付以降のファイルを取得
Windows管理者のためのPowershellさんに書かれている以下が参考になる。
Get-ChildItem C:\ -Recurse | Where-Object{$_.LastWriteTime -ge "1/1/2012"} | ForEach-Object{$_.FullName + ":" + $_.LastWriteTime} > C:\FindFiles_TimeSet.log
実際に自分でやってみたところ、上記の日付指定は"mm/yy/yyyy"のようだとわかった。
日付は1桁の場合は0付き(01など)にする必要がありそうだ。
Get-ChildItem C:\ZyboDev\zybo_160112_baseDesign\ -Recurse | Where-Object{$_.LastWriteTime -ge "01/23/2016"} | ForEach-Object{$_.FullName + ":" + $_.LastWriteTime} > time.log
上記のように変更して実行した結果が以下。
C:\ZyboDev\zybo_160112_baseDesign\hw\lib:01/23/2016 09:01:11
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd:01/23/2016 08:54:51
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.cache:01/23/2016 08:54:50
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.hw:01/23/2016 08:54:50
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.runs:01/23/2016 08:54:51
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.sdk:01/23/2016 08:54:50
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.sim:01/23/2016 08:54:50
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.srcs:01/23/2016 08:54:50
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.xpr:01/23/2016 09:01:05
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.cache\wt\java_command_handlers.wdf:01/23/2016 09:01:05
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.cache\wt\project.wpc:01/23/2016 08:55:15
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.cache\wt\synthesis.wdf:01/23/2016 09:01:16
C:\ZyboDev\zybo_160112_baseDesign\hw\zybo_bsd\zybo_bsd.cache\wt\webtalk_pa.xml:01/23/2016 09:01:05
...
最終更新ファイルを見つけるため、これを日時でソートしようとしている。
try1 > Sort-Object追加
以下でできた (Sort-Object {$_.LastWriteTime} を追加)
Get-ChildItem C:\ZyboDev\zybo_160112_baseDesign\ -Recurse | Where-Object{$_.LastWriteTime -ge "01/23/2016"} | ForEach-Object{$_.FullName + ":" + $_.LastWriteTime} | Sort-Object {$_.LastWriteTime} > time.log
成功したと思ったら、フォルダ内だけソートになっているようだ。
複数フォルダがある時に最終更新ファイルを見つけにくい。
try2 > Sort-Objectの位置変更
Sort-Objectの位置を変更したら、うまくいったようだ。
日付でのフィルター処理の直後に入れた。
Get-ChildItem C:\ZyboDev\zybo_160112_baseDesign\ -Recurse | Where-Object{$_.LastWriteTime -ge "01/23/2016"} | Sort-Object {$_.LastWriteTime} | ForEach-Object{$_.FullName + ":" + $_.LastWriteTime} > time.log