我對PowerShell非常陌生。我想使用PowerShell來讀取一個txt文件,並將其更改爲另一種格式。Powershell,從txt文件中讀取數據並格式化(刪除行,刪除之間的空格)
- 從txt文件讀取。
- 格式數據(刪除線,在之間移除空格)
- 計數的記錄(「T 000000002」 9個字符)
,然後輸出寫入到一個新文件。
我剛剛開始兩天前的PowerShell,所以我不知道如何做到這一點呢。從文件
我對PowerShell非常陌生。我想使用PowerShell來讀取一個txt文件,並將其更改爲另一種格式。Powershell,從txt文件中讀取數據並格式化(刪除行,刪除之間的空格)
,然後輸出寫入到一個新文件。
我剛剛開始兩天前的PowerShell,所以我不知道如何做到這一點呢。從文件
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
閱讀:
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
我也很喜歡線條的東西嗎?用來替代那個對象來修剪它。
Get-Content file.txt | ?{ $_ } > file2.txt
只需注意:通過'>'重定向以Unicode創建文件。如果您需要指定編碼,請使用'... |設置內容文件名-encoding Utf8'。 – stej 2010-06-23 20:17:03
...或者'Out-File',類似地。 @stej:你的「Unicode」意思是「UTF16-LE」在這種情況下:-) – Joey 2010-06-24 07:17:14
大家好,非常有用。但我仍然試圖弄清楚如何計算行數。我能夠刪除空格我的代碼到目前爲止是 $ s = get-content D:\ MyScripts \ members.txt | Foreach-Object {($ _ -replace' - ','')} | Foreach-Object {($ _ -replace'OP_ID','')} | Foreach-Object {($ _ -replace'EFF_DT','')} | Where-Object {$ _ -ne''} | 刪除空間$ s |設置內容D:/ MyScripts/nmembers。txt – user350332 2010-06-29 17:42:19