我对powershell真的很新。我想使用powershell读取txt文件并将其更改为其他格式。
然后将输出写入新文件。
两天前我刚开始使用PowerShell,所以我还不知道该怎么做。
答案 0 :(得分:8)
从文件中读取:
Get-Content file.txt
不太确定你想要什么。 Get-Content
返回一个字符串数组。然后,您可以操纵所获得的内容并将其传递给它。这里最有用的cmdlet可能是Where-Object
(用于过滤)和ForEach-Object
(用于操作)。
例如,要删除所有空白行
Get-Content file.txt | Where-Object { $_ -ne '' } > file2.txt
这可以缩短为
Get-Content file.txt | Where-Object { $_ } > file2.txt
因为布尔上下文中的空字符串的计算结果为false
。
或者删除每一行中的空格:
Get-Content file.txt | ForEach-Object-Object { $_ -replace ' ' } > file2.txt
再一次,不太清楚你在这之后会发生什么。
中我可以从你过于精细的描述中想到的可能事情$_.Substring(2).Length
或
$_ -match '(\d+)' | Out-Null
$Matches[1].Length
答案 1 :(得分:1)
function Count-Object() {
begin {
$count = 0
}
process {
$count += 1
}
end {
$count
}
}
$a= get-content .\members.txt |
Foreach-Object { ($_ -replace '\s','') } |
Foreach-Object { ($_ -replace '-','') } |
Foreach-Object { ($_ -replace 'OP_ID','') } |
Foreach-Object { ($_ -replace 'EFF_DT','') } |
Where-Object { $_ -ne '' }|
set-content .\newmembers.txt
$b = Get-Content .\newmembers.txt |
Count-Object $b
"T {0:D9}" -f $b | add-content .\newmembers.txt
答案 2 :(得分:1)
Get-Content file.txt | ?{ $_ } > file2.txt