0

入力ファイルに次の 2 行があります。

サンプル入力ファイル (ファイル名 - file.txt)

String1   value   'string2'
..
..
..
Call  string1 

望ましい出力: File.txt. (つまり、ファイルの名前)

基本的に、ファイルの名前が必要です-これらの2行が含まれている場合1)string1 value 'string2' 2)call string1

上記の 1) と 2) は 2 つの異なる行であり、その間に多くの行が存在する可能性があります。

PS a) を探してい'string2'ます。'string1'任意の 8 文字を指定できます。わかりません'string1' b)'string2'は常に一重引用符 (') で囲みます c)'string2'は常に文字列の前に置きます'value'

ありがとう

4

2 に答える 2

0

以下のスクリプトは、現在のディレクトリ内の各ファイルを調べて、内容に 2 行を含むファイルを探します。これがあなたの状況に合っているかどうかはわかりませんが、環境に合わせてカスタマイズすることは難しくありません.

dir *.* | foreach {if (get-content $_| Select-String -pattern  "^[A-Za-z]{8} value 'string2'","Call string1") {"$_"}}

出力(私のラボで)は次のとおりです。

C:\Documents\ManualScripts\test.txt

test.txt は、このスクリプトをテストするために作成したファイルです。内容は次のとおりです。

abcdefgh value 'string2'
hello world
I love church
I love Jesus
call string1
Alibaba, sesame open the door!

@dazedandconfused には、スクリプトが要求したファイル名ではなく、2 行目の一部である「String1」を返すと思います。あなたのスクリプトは、彼/彼女の別のニーズを反映していないだけでなく、「'string1' は任意の 8 文字にすることができます」。私が間違っていたら許してください。

于 2013-06-23T00:22:21.280 に答える