Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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
Powershell 如何读取和解析多个文件?_Powershell_Powershell 3.0 - Fatal编程技术网

Powershell 如何读取和解析多个文件?

Powershell 如何读取和解析多个文件?,powershell,powershell-3.0,Powershell,Powershell 3.0,我有3个文本文件,我需要阅读每个内容,然后抓取相关字段,最后将这些字段一起输出到一个新的文本文件中。每个文件的所有字段应输出为一行(无换行符) 我的问题是最后的输出步骤 这是获取内容部分: $raw=获取内容“C:\folderpath\*.*” $raw=$raw |选择字符串-模式“string1”、“string2”、“string3” $raw 我得到以下结果(所有解析的文件字符串依次堆叠): 我的问题是:如何像下面的示例那样输出这些结果(同一行中的3个文件字符串中的每一个) 假设这是

我有3个文本文件,我需要阅读每个内容,然后抓取相关字段,最后将这些字段一起输出到一个新的文本文件中。每个文件的所有字段应输出为一行(无换行符)

我的问题是最后的输出步骤

这是获取内容部分:

$raw=获取内容“C:\folderpath\*.*”
$raw=$raw |选择字符串-模式“string1”、“string2”、“string3”
$raw
我得到以下结果(所有解析的文件字符串依次堆叠):

我的问题是:如何像下面的示例那样输出这些结果(同一行中的3个文件字符串中的每一个)


假设这是您的
$raw
输出:

string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
您希望得到这样的结果:

string1=1 string2=8 string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11
你可以这样做:

$raw=获取内容“C:\folderpath\*.*”
$raw=$raw |选择字符串-模式“string1”、“string2”、“string3”
($raw | Out String)-替换“`r`n(String[23])”,“$1”
捕获组应匹配除第一个字段名以外的所有字段名,因此,如果您的名称与
string2
string3
不太相似,则应使用替代名称:

($raw | Out String)-替换“`r`n(string2 | string3)”,“$1”

谢谢Ansgar,但是我在添加提供的代码($raw | Out String)时没有得到更改-替换“
r
n(String[23]),“$1”@rotmshein如果代码与您问题中的示例数据配合得很好。请提供证据。你是对的,它工作得很好!!我有一个语法错误$raw=Get Content“C:\Users\Administrator\Desktop\testfolder**”$raw=$raw |选择字符串-模式“string1”、“string2”、“string3”($raw | Out String)-替换“
r
n(String[23]),“$1”string1=1 string2=8 string3=2015-06-02 23:58:11 string1=1 string2=8 string3=2015-06-02 23:58:11 string1=1 string2=8 string3=2015-06-02 23:58:11 string1=1 string2=8 string3=2015-06-02 23:58:11 string1=1 string2=8 string3=2015-06-02 23:58:58:11嗨,安斯加,代码非常有效!!我的最后一个问题是,如果我没有“string1,string2,string3”,而是有不同的字段名,比如“first”last“email”,我可以修改提供的代码吗?“
r
n(string[23])”,,“,$1”再次感谢!!使用替换,但省略第一个字段名:`r`n(last | email |…)
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11