String powershell写入包含字符串的文件的名称
我的输入文件中有以下两行 示例输入文件(文件名-file.txt) 期望输出: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
。(即文件名)
基本上我想要文件名-如果它包含这两行
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!