免責事項:私はPowershellの理解がゼロです。最初はJavaでこれを行うつもりでしたが、代わりにスケジュールされたタスクを実行することにしました(PoShスクリプトの実行)。
これは私が持っているものです:
$ArmA2OA = Get-Process ArmA2OA - ErrorAction SilentlyContinue
$ChkFile = "C:\Users\Mark27\AppData\Local\ArmA 2 OA\ArmA2OA.rpt"
$FileExists = Test-Path $ChkFile
$currentDate = get-date -uformat "%Y-%m-%d@%H-%M-%S"
if(-Not($ArmA2OA)){
if($FileExists){
move-item "C:\Users\Mark27\AppData\Local\ArmA 2 OA\ArmA2OA.rpt" ("C:\Users\Mark27\Desktop\A2OA\{0:yyyyMMdd}.rpt" -f (get-date))
}
else{break}
}
else{break}
想定される処理:プロセスA2OA.exe
が実行されていない場合ArmA2OA.rpt
は、ディレクトリにファイルが存在するかどうかを確認しますC:\Users\Mark27\AppData\Local\ArmA 2 OA\
。それが当てはまる場合、現在のタイムスタンプを使用してファイルをコピーして名前を変更し、C:\Users\Mark27\Desktop\A2OA
ファイルが存在しない場合、またはプロセスが実行されている場合は、中止します。
私はこれに似た多くの質問を経験しましたが、私の解決策を見つけていません。探しているディレクトリとファイル名は常に同じです。(このスクリプトは、10〜15分ごとに実行されるように設定されます。)