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

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

新規登録して質問してみよう
ただいま回答率
85.48%
コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1258閲覧

バッチファイルで終了させずに次の処理をしたい

consommemiso

総合スコア2

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/03/29 12:39

編集2023/03/29 13:49

実現したいこと

ループを終了させて次の処理に移る

前提

python rin.py -M 300 -rの部分がループになっています。
そのしたのデータ出力はループのあとに実行したいです

ジョブを終了しますか (Y/N)?のメッセージがでて止まります
それを飛ばすか自動でN入力して止まらずにできたらと思います

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

ループを抜け出して次のコマンドに行けない ジョブを終了しますか (Y/N)?のメッセージを飛ばせない

該当のソースコード

@echo off chcp 65001 rem rinフォルダへ移動 cd %USERPROFILE%\Documents\GitHub\rin echo rinのアップデートを確認 git pull echo. rem モニタリングモードを起動 終了する場合はCtrl+C python rin.py -M 300 -r rem Rawデータの出力 python rin.py -o rem GSCデータの出力 python rin.py --gscdata rem ファイル移動 move *.json .\exports

試したこと

echo N| python

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

Windows ターミナル
バージョン: 1.16.10262.0
python
3.11

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

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

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

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

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

otn

2023/03/29 13:13

Ctrl-Cを押した時に、 ^Cバッチ ジョブを終了しますか (Y/N)? というメッセージが出ないと言うことでしょうか?
consommemiso

2023/03/29 13:44

ありがとうございます ジョブを終了しますか (Y/N)?のメッセージは出ます それを飛ばすか自動でN入力して止まらずにできたらと思います 質問に追記しておきます
guest

回答1

0

ベストアンサー

それを飛ばすか

それは無理です。

自動でN入力して止まらずにできたらと思います

BATから実行するプログラムが入力をしない物なら、コマンドプロンプトウィンドウで、

CMD

1echo N | バッチファイル名

と入力して実行すると可能です。
この1行をバッチファイルにしてそれを実行すると、その外側のバッチファイルがCtrl-Cを受け取ってしまうので駄目です。コマンドプロンプトで毎回入力してください。

別案としては、新規別ウィンドウでPythonを実行してその終了を待つという方法も考えられます。
Ctrl-Cは新規ウィンドウをアクティブにしてキーインします。もしくはウィンドウを閉じるか。

CMD

1(前略) 2start python rin.py -M 300 -r 3rem Ctrl-Cの後、ウィンドウを残したい場合は下記に変更 4rem start cmd /k "python rin.py -M 300 -r" 5:WAIT 6timeout 1 7tasklist | findstr python.exe >NUL 8if not ERRORLEVEL 1 goto WAIT 9python rin.py -o 10(後略)

ただし、同時に他のpythonプログラムを実行していると終了判断できないです。
待ち時間は1秒だとtasklist実行回数が多くなるので、適当に調整してください。

投稿2023/03/29 14:12

otn

総合スコア84555

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

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

otn

2023/03/29 14:33

Pythonプログラムが変更可能なら、Ctrl-Cで止めるのをやめて、別の何らかのキーを検知して終了するか。 具体的には「python windows キーボードが押されたか」などで検索してください。
consommemiso

2023/03/29 19:13

ありがとうございます `echo N | バッチファイル名 ` で呼び出して起動させるバッチファイルを作りました 元のファイルも改良できました あとの人のためコードを残しておきます(必要なさそうだけど) ``` @echo off chcp 65001 rem rinフォルダへ移動 cd %USERPROFILE%\Documents\GitHub\rin echo N| "rin 起動+データ出力.bat" ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問