2014-12-04 27 views
3

我需要將文件逐行寫入另一個文件。我可以在PowerShell窗口中正常工作,但是當我試圖將其連接到Out-File時,它不起作用。這是我的腳本:Powershell Out-File不能像預期的那樣使用反轉字符串

Get-Content C:\Users\Administrator\Desktop\files.txt | ForEach-Object { 
    $text = $_.toCharArray() 
    [Array]::Reverse($text) 
    -join $text | Out-File 'C:\Users\Administrator\Desktop\reversed.txt' 
} 

這實際上是在桌面上創建一個文件,但並沒有給它任何內容。

如果我不在最後一行輸入Out-File,它可以正常工作,並將反轉的文件直接打印到PowerShell窗口。

我試過了,沒有單引號,也沒有使用-FilePath選項。沒有什麼工作。那裏有任何想法?

+2

我想你有'| Out-File'在錯誤的地方。在關閉後試試'}' – TheMadTechnician 2014-12-04 01:55:52

回答

5

由於不使用-Append參數,因此Out-File將在每次處理源文件中的一行時覆蓋該文件。我懷疑源文件的最後一行是一個空行,這就是爲什麼你在輸出文件中什麼也看不到。

正確的方式做,這是@TheMadTechnician提示:

Get-Content C:\Users\Administrator\Desktop\files.txt | 
    ForEach-Object { 
     $text = $_.toCharArray() 
     [Array]::Reverse($text) 
     -join $text 
    } | 
    Out-File C:\Users\Administrator\Desktop\reversed.txt 
+0

謝謝。當我今天開車穿過加利福尼亞時,這個解決方案實際上是對我來說的......當我回到辦公室後,我肯定會執行這個方案,看看它是否有效......我確信它會。 – Mikael 2014-12-05 07:06:14

+0

已驗證。作品。再次感謝。 – Mikael 2014-12-08 15:53:48

相關問題