-2

次の場所 \ncsusnasent02.na.jnj.com\its_diq_na_win_dev\PowerCenter\infa_shared\WCPIT_BIO_EDW\SrcFiles\DDDMD\DDD.CLI026.WK0933.DDDMR45.001.head

私は1つのファイルDDD.CLI026.WK0933.DDDMR45.001.headを持っています

このファイルを開くと、次のようにデータが取得されます(1行で)

HEADER0101IMS HEALTHDMD Weekly   D        DD.CLI026.WK0933.DDDMR45         Centocor    DMDDRM45               W2009080210120090831125325ssnyder@us.imshealth.com      
    TRAIL0101 000000000581                         0000000000CKSUM000002236804730

このファイルから 581 をコピーする必要があります (毎日更新されるため、常に同じというわけではありません)。

そしてそれを変数に入れます

4

3 に答える 3

3

以下を試すことができます。フィールドを環境変数に設定しますid

 for /f "tokens=10" %%a IN (%1) do (
   SET id=%%a
 )
 echo %id%

フル パスとファイル名を最初の引数としてバットに渡すことができます。

編集:

この単純なバットは、コマンドライン ( param %1) で指定したファイルから入力を取得し、デフォルトの区切り文字 と を使用して<space><tab>ファイル内の行 (セットで定義されてINいる) をトークンのセットに分割します。param は、問題の"tokens=10"番号であることが判明した 10 番目のトークンをDOブロックに渡すようにプロセッサに指示します。param として渡され%%aます。ブロック内では、DOその値を環境変数に割り当てるだけですid。コマンドが完了しforたら、値をコンソールにエコー出力します。

于 2009-09-14T12:55:07.847 に答える
0

FOR コマンド、具体的には /F パラメータに関する部分を見てください。

完全なコマンドを記述しようとするほど、その行の構造については十分に確信が持てませんが、その情報があれば、自分で記述できるはずです。

于 2009-09-14T12:55:51.213 に答える
0

うーん、私には、男がdos substrを必要としているように見えます...つまり

@Echo Off

If not %1.==[]. (Cmd /V:On /C Call %0 [] %1 & GoTo :EOF)

Shift
Set MyVariable=HELLOWORLD
Set ASubStr=!MyVariable:~%1!
Echo [!ASubStr!]

たとえば、これをtest.batとして保存し、「test.bat 5」を呼び出すと、WORLDがエコーされます

Google DOS Substring を参照して、テキスト変数を希望どおりに解析する方法を見つけてください。

于 2009-09-14T12:59:19.890 に答える