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

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

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

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドプロンプト

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

バッチファイル

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

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

解決済

.bat内のif文により、.batが途中で終了してしまう。

zazabi
zazabi

総合スコア0

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドプロンプト

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

バッチファイル

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

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

3回答

0評価

1クリップ

9666閲覧

投稿2019/09/05 07:27

編集2022/01/12 10:58

■環境
2003 リモート接続先サーバ
コマンドプロンプトの.batファイルとして使用します。

■目的
大目的:サービスが存在する場合、サービスを停止の後に削除する。その後、ある場合と無い場合共通のコマンドを流す。
小目的:サービスの検索結果をファイルに出力し、その中からサービスの名前の文字列検索をする。一致した場合、停止と削除コマンドを流す。

■困っている事
1.下記のコマンドを流した際、.batが途中で終わる。これはサービスの削除判定batを別のbatにしないと続行することができませんか?
2.下記のコマンドを流した際、:answer0と:answer1が両方とも出力されてしまいます。場合分けしたいのですが、修正や指摘をお願いします。

■コマンド

cmd

@echo off set file=<出力先ファイル> sc qc <サービス名> >"%file%" rem 文字列検索 set keyword=<サービス名> findstr %keyword% "%file%" > NUL GOTO answer%ERRORLEVEL% pause :answer0 rem 検索文字列ありの場合 echo サービスが既にあります。 set /P STR_INPUT="既存のサービスをサービス一覧から削除します。削除しない場合、新しいサービスのインストールは行われません。インストールしてよろしいですか?(y/n): " IF "%STR_INPUT%" == "y" ( echo "%STR_INPUT%:処理続行" echo 既存のサービスを削除します。 echo サービスのスタートアップの種類を手動にします。 sc config <サービス名> start= demand echo サービスを停止します。 sc Stop <サービス名> echo サービスを削除します。 sc.exe delete <サービス名> ) ELSE ( echo "%STR_INPUT%:処理中止" echo バッチファイルを停止します。 pause exit ) goto end exit /b :answer1 rem 検索文字列無しの場合 or エラーが発生した場合 echo サービスはありません。 goto end :end rem 下にコマンドが続きますが、関係ないので割愛。 endlocal pause

####追記
コマンドを一部修正しました。

cmd

GOTO answer%ERRORLEVEL% :answer0 goto end :answer1 goto end :end rem 残りのコマンド

にしてみて期待通りに動くようになりましたが、これで良かったのか不安です……。
以上、わかることがあればコメントをお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

gentaro
gentaro

2019/09/05 08:38

何度も質問されているみたいだし、そろそろマークダウンの使い方覚えませんか? https://teratail\.com/help/question-tips#questionTips3-7
otn
otn

2019/09/05 13:59

> \.batが途中で終わる。 どこでですか?
Y.H.
Y.H.

2019/09/06 00:12

「コマンドプロンプトでコマンド実行結果を変数に格納したい」 という質問タイトルと内容が全く関係ないように思えるのですが・・・ 質問内容がわかるタイトルに変更してください。
zazabi
zazabi

2019/09/06 00:16

gentaro さん コメントありがとうございます。 あんまり気にしていませんでしたが、こちらの方が確かにわかりやすいですね。 今後は利用しようかと思います。 otnさん コメントありがとうございます。 findstr文、if文、:answer0、:answer1が流れた後に終わってしまいます。この後にもコマンドは続いていますがそこで終わってしまいます。
zazabi
zazabi

2019/09/06 00:20

Y\.H\.さん コメントありがとうございます。 よく見たらそうですね…、本文の内容と合うように訂正させていただきました。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドプロンプト

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

バッチファイル

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

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。