動作確認環境
Windows10
前提・実現したいこと
WEBサイトの死活監視を行いたいと考えています。
1.batファイルがサイトの状況を確認 返ってきた値が200なのか404かを確認
2.batファイル内にif構文で200以外が返ってこれば、powershellファイルを起動
3.gmailで、スマホに通知を送る。
以下、今後実装予定(今回は気にしないでください。)
4.batファイルを5分置きに実行
発生している問題・エラーメッセージ
上記の内容でコマンドプロンプト上に、コマンドを直接打ち込む(貼り付ける)と、
想定どおりの動きをしますが、
いざbat形式にして、これをダブルクリックし実行すると、
cmdのウインドウが一瞬だけ表示されて、すぐ消えてしまいます。
なお、あえて公開していないアドレスを指定し、404が返ってくる状態にしているので、
メール通知が飛ぶようになっています。
該当のソースコード
for /f "usebackq" %d in (curl -s -I -o nul -w "%{http_code}" http://172.16.X.XX:XXXX/APP_XXXXX_X_XXXX/page/login.jsp
) do set A=%d
if %A% neq 200 powershell -NoProfile -ExecutionPolicy Unrestricted C:\Dcheck.ps1
試したこと
●「SMB 1.0/CIFSクライアント」を有効にする。
備考
batファイル自体を作るのが初めてでして、色々手探りで作成している最中です。
死活監視のアプリを別途導入したい所ですが、
社内端末で導入が難しい環境の為、
batファイルとpowershellで何とかできないかなと考え、
構築に至りました。
そもそも初歩的なミスがあるように思いますが、
3時間程悩んでもなぜ動かないかわかりませんでした。
お手数ですがご助言いただけないでしょうか。
【コメントいただいた解決策】⇒実行可確認済
%→%%へ修正
【旧】
for /f "usebackq" %d in (curl -s -I -o nul -w "%{http_code}" http://172.16.X.XX:XXXX/APP_XXXXX_X_XXXX/page/login.jsp) do set A=%d
if %A% neq 200 powershell -NoProfile -ExecutionPolicy Unrestricted C:\Dcheck.ps1
【新】
for /f "usebackq" %%d in (curl -s -I -o nul -w "%%{http_code}" http://172.16.X.XX:XXXX/APP_XXXXX_X_XXXX/page/login.jsp) do set %A=%%d
if %%A%% neq 200 powershell -NoProfile -ExecutionPolicy Unrestricted C:\Dcheck.ps1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/11 10:07
2021/11/11 10:10
2022/03/22 15:25