簡體   English   中英

powershell寫入包含字符串的文件的名稱

[英]powershell write name of file containing string

我的輸入文件中有以下兩行。

示例輸入文件(文件名-file.txt)

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

所需的輸出: File.txt (即文件名)

基本上我想要文件名-如果它包含這兩行1) string1 value 'string2'call string1

上面的1)和2)是兩條不同的線,中間可能有很多線。

PS a)我正在搜索'string2' 'string1'可以是任意8個字符。 我不知道'string1''string2'將始終以單引號(')c) 'string2'將始終以字符串'value'開頭

謝謝

嘗試這個...

 gc input.txt |?{$_ -match '.*value ''(.*)'''}|%{$matches[1]}

下面的腳本瀏覽當前目錄中的每個文件,並在內容中查找帶有兩行的文件。 不知道這是否滿足您的情況,但是根據您的環境對其進行自定義並不難。

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,我相信您的腳本返回“ String1”,這是第二行的一部分,而不是他/她請求的文件名。 此外,您的腳本無法反映他/她的另一個需求:““ string1”可以是任意8個字符”。 如果我錯了,請原諒我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM