Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String powershell写入包含字符串的文件的名称_String_Search_Powershell - Fatal编程技术网

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

String powershell写入包含字符串的文件的名称,string,search,powershell,String,Search,Powershell,我的输入文件中有以下两行 示例输入文件(文件名-file.txt) 期望输出: File.txt。(即文件名) 基本上我想要文件名-如果它包含这两行 1) string1值“string2” 2) 调用string1 1) 上面是两条不同的线,中间可能有很多线 另外,我正在搜索'string2''string1'可以是任意8个字符。我不知道'string1' b) 'string2'将始终在单引号(')中 c) 'string2'将始终以字符串'value' 谢谢试试这个 gc input.t

我的输入文件中有以下两行

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

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

基本上我想要文件名-如果它包含这两行 1)
string1值“string2”
2)
调用string1

1) 上面是两条不同的线,中间可能有很多线

另外,我正在搜索
'string2'
<代码>'string1'可以是任意8个字符。我不知道
'string1'
b)
'string2'
将始终在单引号(')中 c)
'string2'
将始终以字符串
'value'

谢谢

试试这个

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

下面的脚本遍历当前目录中的每个文件,并查找内容中包含2行的文件。不确定这是否符合您的情况,但根据您的环境对其进行自定义并不困难

dir *.* | foreach {if (get-content $_| Select-String -pattern  "^[A-Za-z]{8} value 'string2'","Call string1") {"$_"}}
输出(在我的实验室中)为:

test.txt是我为测试此脚本而创建的文件。内容如下:

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

对于@DazedandMiddle,我相信您的脚本返回“String1”,它是第二行的一部分,而不是他/她请求的文件名。此外,您的脚本没有反映他/她的另一个需求:“'string1'可以是任意8个字符”。如果我错了,请原谅我

非常感谢!!我快到了。请原谅我缺乏经验。我需要的只是一个小小的改变——在你的剧本中。”abcdefgh'(value之前的第一行)应匹配string1'(第五行中call语句之后)。换句话说,string1应该等于'abcdefgh'——那么只有我希望它出现在输出中。谢谢。没问题,我也是powershell的新手。如果有道理,请接受答案:)事实上,原来的帖子已经被大量编辑过了。我最初的回答在当时是相关的,但现在不是那么重要了。
C:\Documents\ManualScripts\test.txt
abcdefgh value 'string2'
hello world
I love church
I love Jesus
call string1
Alibaba, sesame open the door!