システム系の詳しい人にお願い
■ このスレッドは過去ログ倉庫に格納されています
毎月3営業日に特定のバッチ処理をしたい、という時に、
タスクスケジューラでどう制御すればいいの?
おせーてくだされ その通り設定する
といいたいところだが
3営業日なんて指定できたか? 3営業日が第3平日でいいのかお前んとこの独自カレンダーにおける3営業日なのかで難易度が違う 分からないからchatGPTに協力仰いでもいいか? >>6
マジかchatGPTてこんなのも解決すんの???
やってみてやってみて頼む >>9
それより早いと現場の入力が追い付かず
それより遅いと決算が遅れる タスクスケジューラ使ったことねーからわからんけどそういうシステムなら簡単に作れる >>7
どっちにしろタスクスケジューラに営業日指定はできないからバッチファイル内で毎日今日が3営かどうか判定する >>15
そうなるよねやっぱ
んでもって祝日と5月と1月の制御も組み込む感じかね >>10
Windowsのタスクスケジューラを使用して、毎月3営業日にバッチ処理を実行するには、次の手順を実行できます。
タスクスケジューラを開きます。これは、[スタート] メニューから「タスクスケジューラ」を検索して開くことができます。
「タスクの作成」を選択して、新しいタスクを作成します。
タスクの基本情報を入力します。これには、タスクの名前、説明、実行するユーザーアカウントなどが含まれます。
「トリガー」タブを選択し、「新規」をクリックして、新しいトリガーを作成します。
トリガーの設定画面で、次のように設定します。
「開始時間」には、最初にバッチ処理を実行する日付と時刻を指定します。
「繰り返し間隔」には、「毎月」と「3日」を選択します。
「開始前に」には、バッチ処理を実行する前に何分前にタスクを起動するかを指定します。
「操作」タブを選択して、「新規」をクリックして、バッチ処理を実行するための新しい操作を作成します。
操作の設定画面で、「プログラム/スクリプト」と「引数」を設定して、実行するバッチ処理を指定します。
その他の設定を必要に応じて構成し、[OK] をクリックして、タスクを作成します。
これで、タスクスケジューラによって毎月3営業日にバッチ処理が実行されるようになります。 カレンダーファイルを作って毎日チェックして該当日だったら処理実行 >>15
あーこれが一番簡単だな
bat内にベタ書きすれば会社独自の休みとか大型連休とかも抜けるし なんか違う気がするので「土日祝日を抜いて3営業日にしたいんだけど」と言ってみた
↓
土日祝日を抜いて3営業日にバッチ処理を実行するには、次の手順を実行します。
まず、営業日カレンダーを作成する必要があります。これには、土日や祝日などの休業日を除外する日付を含めます。
タスクスケジューラを開き、「タスクの作成」を選択して新しいタスクを作成します。
タスクの基本情報を入力し、「トリガー」タブを選択して新しいトリガーを作成します。
トリガーの設定画面で、「繰り返し間隔」に「毎月」と「1日」を選択し、「開始時間」にはバッチ処理を最初に実行する日付と時刻を指定します。
次に、「操作」タブを選択して、バッチファイルを実行する操作を作成します。このとき、「引数」には営業日カレンダーのパスを指定します。
最後に、「トリガー」タブに戻り、「高度な設定」をクリックします。
「高度な設定」ダイアログボックスで、「繰り返し間隔の種類」を「営業日」に変更し、「営業日のみ」のチェックボックスをオンにします。
「営業日カレンダー」のフィールドに、営業日カレンダーのパスを指定します。
これで、土日祝日を除外して毎月3営業日にバッチ処理が実行されるようになります。ただし、この方法は、Windowsのタスクスケジューラには組み込まれていない機能なので、独自にスクリプトを書いて実現する必要があります。 >>17
これやってる人多そうだよね
そのために出社してる人がいそう >>18
それは毎月3日に実行するバッチじゃん…
おしい、chatGPTくん >>19
実行日をべたっと書き連ねておいて毎日チェックが無難かねえ 祝日をGoogle先生頼りになるけど大丈夫?結構ズレるよ祝日 >>26
複数日付で予約しておくってことね
はいはい
それでもいいね >>29
たまに春分の日間違ってくれちゃうよねgoogleさん chatGPTに適切な質問投げるのが一番早かったな
時代は変わったなぁ >>21
独自スクリプトも書いてもらった
↓
営業日のみを考慮してバッチ処理を実行するために、PowerShellスクリプトを使用することができます。以下は、PowerShellを使用して営業日カレンダーから次の3営業日を取得するサンプルスクリプトです。
powershell
Copy code
# 営業日カレンダーのファイルパスを指定する
$calendarPath = "C:\path\to\calendar.csv"
# 営業日カレンダーを読み込む
$calendar = Import-Csv $calendarPath
# 実行日の1日後から営業日を数える
$count = 1
$today = Get-Date
$nextBusinessDay = $today.AddDays($count)
while ($count -le 3) {
if ($calendar."日付" -contains $nextBusinessDay.ToShortDateString()) {
# 営業日の場合は、$countをインクリメントする
$count++
}
# 次の日付をチェックする
$nextBusinessDay = $nextBusinessDay.AddDays(1)
}
# 次の3営業日を表示する
Write-Host "Next 3 business days:"
$today = Get-Date
$count = 0
while ($count -lt 3) {
if ($calendar."日付" -contains $today.ToShortDateString()) {
# 営業日の場合は、日付を表示する
Write-Host $today.ToShortDateString()
$count++
}
# 次の日付をチェックする
$today = $today.AddDays(1)
}
このスクリプトは、指定されたカレンダーファイルから営業日を読み込み、今日の日付の翌日から営業日を数え上げ、次の3営業日を計算して表示します。このスクリプトをタスクスケジューラで定期的に実行することで、毎月3営業日にバッチ処理を実行できます。実際のバッチ処理に関する部分は、このスクリプトに組み込むことができます。 第3営業日なんて面倒な設定なら
数年分の実行日を全部個別指定しろよ面倒くせえ >>32
マジですげえなchatGPT
びっくりだわ >>34
タスクスケジューラって質問してるからpowershellで書いてくれるのか
至れり尽くせりだな >>34
ここまでしてくれるのかよ
そろそろChatGPTちゃんの絵描いてくれよVIPPER >>33
日立の?JP1?やっぱそういう機能持ってるよねさすが国産 >>37
これでも使い方にコツみたいなものが要るから使って慣れたほうが良いよ >>35
月次の締め処理なんてそんなもんじゃね?
それとも上場企業だと有無を言わせず○日とか固定してるのかね… >>34は今日から数えて3営業日後の日付出すだけだろ 試してないけど
トリガーの日付を 毎月最終平日にして 遅延時間を4日に設定
設定タブの実行中の場合に適用される規則で 既存インスタンスの中止
これじゃだめ? >>43
あら?よく見てなかった
修正させた
↓
月初の3営業日目を取得するには、以下のようにPowerShellスクリプトを修正することができます。
powershell
Copy code
# 営業日カレンダーのファイルパスを指定する
$calendarPath = "C:\path\to\calendar.csv"
# 営業日カレンダーを読み込む
$calendar = Import-Csv $calendarPath
# 今月の1日を取得する
$today = Get-Date
$month = $today.Month
$year = $today.Year
$firstDayOfMonth = Get-Date -Year $year -Month $month -Day 1
# 月初から数えて3営業日目を取得する
$count = 0
$nextBusinessDay = $firstDayOfMonth
while ($count -lt 3) {
if ($calendar."日付" -contains $nextBusinessDay.ToShortDateString()) {
# 営業日の場合は、$countをインクリメントする
$count++
}
# 次の日付をチェックする
$nextBusinessDay = $nextBusinessDay.AddDays(1)
}
# 月初の3営業日目を表示する
Write-Host "The 3rd business day of the month:"
Write-Host $nextBusinessDay.ToShortDateString()
このスクリプトは、今月の1日を取得し、月初から数えて3営業日目を取得して表示します。このスクリプトをタスクスケジューラで定期的に実行することで、毎月月初の3営業日目にバッチ処理を実行できます。実際のバッチ処理に関する部分は、このスクリプトに組み込むことができます。 >>48
そこはどうしようもないな
実行する月から1月と5月を除外して個別に入れるしかない 営業日カレンダー作るより
指定日12個並べる方が圧倒的に楽
だからあれか成長がないのか俺は カレンダー作成を年次作業にして引き継いだけど
あの処理まだ動いてるかなぁ タスクスケジューラ単体なら祝日一覧なりのスキップさせる日一覧用意してマッチしなければ実行みたいなスクリプト作ればいけると思うよ
3日数えるカウンタもファイルに置いとけば作りやすい気がする >>51
うっかり別日に実行されちゃうよりはよほど堅実だと思うよ… JP1のカレンダー設定ってあんまり良くない気がする やっぱ手段で一年に一回くらいチェックスケジュール入れた方が安心じゃね >>58
テキストに書いてサーバに置いてとかを、バッチごとに考えたりしなくていいからね
規模にもよるし業務毎にカレンダー分けたりとかするなら便利だと思う >>60
ハードコーディングしちゃうと編集する時ダブルクリックしそうでww >>61
端末にコピーしてから編集するくらいしてください😡 バッチ処理側に営業日の判定書いといて第一週くらいは毎日起動する ■ このスレッドは過去ログ倉庫に格納されています