Mik*_*ael 3 powershell scripting
我需要逐行向后写一个文件到另一个文件.我可以在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'
}
Run Code Online (Sandbox Code Playgroud)
这实际上在桌面上创建了一个文件,但没有给它任何内容.
如果我只是不管道到Out-File
最后一行,它工作正常,并将反转的文件直接打印到PowerShell窗口.
我已尝试使用和不使用单引号,以及使用-FilePath
选项.没有什么工作.有什么想法吗?
由于未使用-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
Run Code Online (Sandbox Code Playgroud)