powershell写入包含字符串的文件名

时间:2013-06-22 11:02:43

标签: string search powershell

我的输入文件中有两行。

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

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

期望的输出: File.txt。 (即文件名)

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

上面的

1)和2)是两条不同的线,中间可能有很多条线。

P.S。 a)我正在搜索'string2''string1'可以是任意8个字符。我不知道'string1' b)'string2'将始终以单引号(') c)'string2'始终以字符串'value'

开头

由于

2 个答案:

答案 0 :(得分:1)

试试这个......

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

答案 1 :(得分: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我相信你的脚本返回“String1”,它是第二行的一部分,而不是他/她请求的文件名。除了你的脚本没有反映他/她的另一个需求:“'string1'可以是任何8个字符”。如果我错了,请原谅我。