1

ファイルからデータを抽出して、特定のプロセスに適用する必要があります。ファイル構造はこんな感じ

      some title information at file header

      I001=send login information to the system
       connection is OK            
      A001=System has answered: "you are connected"


      I002=press the log out button
      A002=system has answered: "You have been disconnected"
      disconnection is OK

      I003= timeout is 10
      If timeout occurs, refresh view and then check if connection is come again 
      Else retry refreshment until you are connected to the system 

私の目標は、I001、I002、I003、...を取得して、ライン上でのみ保持することです。そのために、私は書きます

    more +1 %1 | findstr /v /r "^A...=.*"   

しかし、私は得る

       I001=send login information to the system
       connection is OK
       I002=press the log out button
       I003= timeout is 10
       If timeout occurs, refresh view and then check if connection is come again. 
       Else retry refreshment until you are connected to the system

それ以外の

      I001=send login information to the system
      I002=press the log out button     
      I003= timeout is 10

一方、ファイルをパラメータとして使用する vbs スクリプトにパイプを介してこの結果をすぐに渡す方法を教えてください。私が使うとき

         findstr "I[0-9][0-9][0-9]" "%~1"|cscript myscript.vbs, 

fsoObj=createobject("scripting.filesystemobject") の行 fsoObj.opentextfile(wscript.arguments(0),1).readall でエラーが発生します。

ご助力ありがとうございます

4

3 に答える 3

1

I+ 3 つの数字を検索する場合は、次のようにします。

findstr "I[0-9][0-9][0-9]" "%~1"

.. 関係なく、式の前後に何があり、more必要もありません。

于 2013-06-03T17:04:36.210 に答える
0

まず、オプションを取り除き/vます。それは、あなたが望むものとは正反対のことをします。

/V 一致を含まない行のみを印刷します。

あなたもA最初は を探していますが、 が欲しいIので、 に変更します

more +1 %1 | findstr /r "^I...=.*"

注: 上記のファイル テキストは、6 つのスペースでインデントされています。その場合は使用

more +1 %1 | findstr /r "I...=.*"

(前にスペースがない , で始まる^のみに一致するため、 はありません。)I

于 2013-06-03T16:40:45.003 に答える