質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バックグラウンド処理

バックグラウンド処理とは、マルチタスク環境において、ユーザーに対して前面に表示させている処理の裏側で実行させる処理のことを呼びます。バックグラウンド処理を行う事によって、ユーザーが他の作業に携わることが可能となります。

Q&A

0回答

1537閲覧

powershell:処理がたまに途中で停止あるいは一定時間経過後に処理される場合がある

m_osa

総合スコア4

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バックグラウンド処理

バックグラウンド処理とは、マルチタスク環境において、ユーザーに対して前面に表示させている処理の裏側で実行させる処理のことを呼びます。バックグラウンド処理を行う事によって、ユーザーが他の作業に携わることが可能となります。

0グッド

0クリップ

投稿2021/01/16 05:17

編集2021/01/16 05:26

前提・実現したいこと

以下powershellの処理がたまに「処理が途中で停止」あるいは「一定時間経過後に処理される」場合があります。
安定して処理できるようにしたいと思っております。

発生している問題・エラーメッセージ

上記に記載しました通り、たまに「処理が途中で停止」あるいは「一定時間経過後に処理される」場合があります。
処理停止箇所は、ソースコードの以下部分になります。

■処理停止箇所 >$ObjC = Start-Process .\CombineText.exe -WindowStyle Hidden -PassThru -Wait ■エラーメッセージ エラーにはならないため、メッセージは特にありません。

該当のソースコード

powershell

1$JobA_DataDel = { 2$ObjA = Start-Process .\DataDel.ps1 -WindowStyle Hidden -PassThru -Wait 3} 4 5$JobB_GetData = { 6$ObjB = Start-Process .\GetData1.exe -WindowStyle Hidden -PassThru -Wait 7 8Copy-Item .\Config_DivideText_1.xlsx ..\Config_DivideText.xlsx 9Start-Sleep -s 3 10$ObjB = Start-Process .\DivideText.exe -WindowStyle Hidden -PassThru -Wait 11} 12 13$JobC_GetData = { 14Copy-Item .\Config_GetData2_1.xlsx ..\Config_GetData2.xlsx 15Start-Sleep -s 3 16$ObjC = Start-Process .\GetData2.exe -WindowStyle Hidden -PassThru -Wait 17 18Copy-Item .\Config_CombineText_1.xlsx ..\Config_CombineText.xlsx 19Start-Sleep -s 3 20$ObjC = Start-Process .\CombineText.exe -WindowStyle Hidden -PassThru -Wait 21} 22 23## ★Job_1 24Start-Job -Name "JobA_DataDel" $JobA_DataDel 25Get-Job -State Running | Wait-Job | Receive-Job 26Remove-Job -Name "JobA_DataDel" 27 28## ★Job_2 29Start-Job -Name "JobB_GetData" $JobB_GetData 30Start-Job -Name "JobC_GetData" $JobC_GetData 31Get-Job -State Running | Wait-Job | Receive-Job 32Remove-Job -Name "JobB_GetData" 33Remove-Job -Name "JobC_GetData" 34 35## ★Job_3 36(省略) 37 38## ★Job_4 39(省略) 40

試したこと

PCの実行環境の問題かと思い、別PCでも実行しましたが、状況は変わりませんでした。

補足情報(FW/ツールのバージョンなど)

Windows10
PSVersion:5.1.17763.1490

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/01/16 11:30

CombineText.exe が止まっているように見えますが。
m_osa

2021/01/16 11:39

ご回答ありがとうございます。 ちょっと理解不足で申し訳ないのですが、止まっているとは具体的には以下の「-Wait」の部分を 除外すればよいということでしょうか。 この後に後続処理があるため、「-Wait」を入れておりました。「-Wait」を除外しても、CombineText.exeが終了後に後続処理が走るようになりますか? >$ObjC = Start-Process .\CombineText.exe -WindowStyle Hidden -PassThru -Wait
Zuishin

2021/01/16 11:45

-Wait をつけると、CombineText.exe が終了するまで停止します。つまり CombineText.exe が終了しないから停止しているということでしょう。
m_osa

2021/01/16 12:18

>-Wait をつけると、CombineText.exe が終了するまで停止します。 ↑これが目的でして、CombineText.exeの終了後にJob_3を実行させたいのです。 基本的には期待通りに動くのですが、たまにここで止まってしまいます。 ※先ほど「-Wait」を除外して実行してみましたが、CombineText.exeの終了を待たずに  Job3が動いてしまいました。
Zuishin

2021/01/16 12:20

だから、CombineText が終了せず止まっているんでしょう。
Zuishin

2021/01/16 12:33

CombineText がどんな仕様か知りませんが、アプリケーションはウィンドウが閉じてもすぐに終了するとは限りません。タスクマネージャーで確認してみたらどうですか?
m_osa

2021/01/16 12:39

すみません。終了しないから、後続に進まないと言われているんですね。 なぜかCombineTextが開始すらしないんです。開始しても、一時間ほど経過後に開始されます。
Zuishin

2021/01/16 12:49

CombineText の方を確かめてみてください。それと、他のアプリケーションでも同じように開始しないかどうかも。
m_osa

2021/01/16 12:54

ありがとうございます。承知しました、確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問