PowerShell在读取文件时保持文本格式

use*_*856 12 c# powershell pastebin

我相信这是一个简单的问题,但我无法绕过它.我想在Windows上的命令shell中执行诊断命令.像这样:

   $cmd =  "ipconfig >> c:\test.txt"

   $message = Invoke-Expression($cmd)

   [String]$message = Get-Content c:\topsecret\testme.txt
Run Code Online (Sandbox Code Playgroud)

然后我希望能够读取文件并保留格式,最后通过API将其发布到pastebin.我试过了,但无论我做什么,我似乎都失去了格式.这可能吗?

Fro*_* F. 31

这是因为你的演员而发生的.Get-Content返回一个对象数组,在文本文件中每行一个字符串对象.将[string]它强制转换为时,它会连接数组中的对象.问题是您没有指定加入对象的内容(例如换行符(backtick)n).

ipconfig >> test.txt

#Get array of strings. One per line in textfile
$message = Get-Content test.txt

#Get one string-object with linebreaks
$message = (Get-Content test.txt) -join "`n"
Run Code Online (Sandbox Code Playgroud)

  • 如果您有PS 3.0+,请尝试`Get-Content test.txt -Raw`. (6认同)
  • 这不适合我.下面做了:(Get-Content test.txt)-join [Environment] :: NewLine (3认同)

mjo*_*nor 22

将所有数据作为单个字符串读取,并嵌入换行符

$file = 'c:\testfiles\testfile.txt'

(IPconfig /all) > $file

[IO.File]::ReadAllText($file)
Run Code Online (Sandbox Code Playgroud)

如果你有V3,他们添加了-Raw参数,它将完成同样的事情:

Get-Content $file -Raw
Run Code Online (Sandbox Code Playgroud)