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

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

ただいまの
回答率

90.35%

  • Windows

    1534questions

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

batファイル でfindstr の検索結果がゼロの時

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,600

amaguri

score 209

https://teratail.com/questions/61870 
の続きなのですが

findstr /R "^226 *" ファイルパス/ファイル名② >NUL

if errorlevel 1 goto ファンクション名


というコードがあり

ファイル名②に先頭が"226 *"で始まるデータを検索し、出力結果は表示しない

もし 検索結果がなかったら ファンクション名に飛ぶ

という解釈をしているのですが
これはfindstrでマッチングをかけた時、一致するデータがなければnullではなくエラーを返すということなのでしょうか?

また

call ファイルパス/ファイル.bat uq ファイル名① DBサーバーより ファイル名② 正常受信


とういうコードがあり

callで 指定したファイル.batのbatch fileの起動をしているのはわかるのですが

その後の uq ファイル名① DBサーバーより ファイル名② 正常受信がなにを意味しているかわかりません。

先ほど教えていただいた>>なども使われておらず
困っています。

追記
callについてですが
他の場所で

call ファイルパス/ファイル名.bat UQ hpcd140 ファイル名.bat 開始

となっておりました。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

findstrの件ですが、全てのコマンドには「戻り値」というものがあります。
※出力内容とは関係ありません。
通常「処理が正常終了なら0、それ以外なら1以上」と定義されています。

findstrの場合、文字列にマッチしたら戻り値0、マッチしなかったら戻り値1となります。
これをERRORLEVELで拾って判断しています。

callの件ですが、"uq"なるコマンド(?)は存在しないです。(聞いたことないです)
直前の「ファイルパス/ファイル.bat」の引数のようなので、そちらのバッチファイルで何か定義されていないでしょうか?
そちらの処理が分かれば何かコメントできるかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/13 17:46

    findstarの件が丁寧に説明いただきありがとうございました!

    マッチしたら0
    マッチングしなかった場合1を返すとのことで納得できました。


    他の行も調べてみたのですが
    call ファイルパス/ファイル名.bat UQ hpcd140 ファイル名.bat 開始

    となっておりました、、、

    キャンセル

  • 2017/01/13 17:50

    やはり"UQ"は「ファイルパス/ファイル名.bat」の内容次第ですね。

    キャンセル

  • 2017/01/13 18:01

    なるほど
    これおそらく
    書き込みしている
    引数みたいなものと認識するのが一般的でしょうか?

    キャンセル

  • 2017/01/13 18:09

    なるほど
    これおそらく
    書き込みしている
    引数みたいなものと認識するのが一般的でしょうか?

    今回は残念ながらサンプルとして見せていただいたファイルでそのファイルを見ることはできないのですが

    ご回答いただいた内容を元に

    自分の解釈として
    callで呼び出したファイルに uq以降の文字を引数として渡して
    そのバッチでログファイルに
    引数から持ってきたデータを書き出しているのかなと思うのですが。

    batファイル 〇〇 〇〇
    とするだけで引数の扱いになるのでしょうか?

    先ほど質問の回答で
    <をつかうと 右のファイルから読み込んで左のファイルに引数として渡す
    などの処理はありますと教えていただいたのですが、、

    キャンセル

  • 2017/01/13 18:24

    バッチファイル名やコマンド名に続けてスペース区切りの文字列を与えるのは「引数」で、どのような引数がどのように処理されるのかはバッチファイルやコマンドの実装次第です。
    内部的に不等号記号のリダイレクト相当の処理がされている可能性はあります。

    キャンセル

  • 2017/01/13 18:33

    なるほど!
    空白で文字を入れると
    引数
    になるというのがわかっただけでもとても勉強になりました!

    違うファイルですが
    ファイル名 以上終了
    とかかれたログファイルをもらったので

    おそらく
    このuqはファイルのパスの一部で
    hpcd140もファイルの名前の一部だったので

    次のバッチで
    ファイルパス/名前を完成させて
    なんらかの処理をおこない
    ファイル名.bat 開始
    というのをログファイルに書き出してる可能性が高いなと感じました。

    キャンセル

  • 2017/01/13 18:43

    もうちょっと正確に書くと「引数」と「オプション」を与える事ができます。

    ざっくり言えば「オプション」はコマンドやバッチの動作を左右するもの、「引数」は処理対象を示すものです。
    詳しくは検索等してみて下さい。

    キャンセル

  • 2017/01/13 19:02

    なるほど!
    いろいろ調べてみたいと思います!

    キャンセル

  • 2017/01/13 19:05

    なるほど!
    おかけさまである程度理解ができました
    いろいろ調べてみたいと思います!

    キャンセル

0

findstr /R "^226 *" ファイルパス/ファイル名② >NUL

前の質問から推測するとファイル②ではなく、ログファイルでは?

だとするとftp実行結果をチェックしてるのでしょう。

FTPのレスポンスコード - @IT

if errorlevel 1 goto ファンクション名

「ファンクション名」ではなく、「ラベル」でしょうね。
エラーだったら「ラベル」の行以降を実行するのです。

call ファイルパス/ファイル.bat uq ファイル名① DBサーバーより ファイル名② 正常受信

「uq」以降は「ファイル.bat」の引数じゃないですか?

コマンドプロンプト call - [プログラムやバッチファイルを呼び出す]

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/13 17:49

    回答ありがとうございます。

    上記2件はおかげ様で無事理解することができました。

    callのけんについて他のコードみたところ

    call ファイルパス/ファイル名.bat UQ hpcd140 ファイル名.bat 開始
    というものがありました

    キャンセル

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

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

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

  • Windows

    1534questions

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