PowerShell - 从txt文件中删除单词之间的空格

时间:2016-04-29 09:26:48

标签: powershell powershell-v2.0

我是powershell的一个菜鸟,仍然在努力学习脚本,但却在基础知识上磕磕绊绊。 我有一个包含网站列表的文本文件

Default Websites
Power Shell
Hello World

我需要删除单词之间的空格,以便我得到下面的结果

DefaultWebsites
PowerShell
HelloWorld

我尝试过使用Trim('')命令但是没有删除空格。

这是我的原始脚本,它删除了开头和结尾处的所有空格以及任何空白行。我需要添加到脚本中以删除单词之间的空格?

Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2" | Select ServerComment | Format-Table -HideTableHeaders | out-file c:\website.txt
$b = Get-Content -Path C:\website.txt
$b | ForEach {$_.TrimEnd()} | ? {$_.trim() -ne '' } > C:\website.txt

提前谢谢你。我感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

我会采用这种方法(英雄是替换功能):

Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2" | Select ServerComment | Format-Table -HideTableHeaders | out-file c:\website.txt
$b = Get-Content -Path C:\website.txt
@(ForEach ($a in $b) {$a.Replace(' ', '')}) > C:\Website2.txt

答案 1 :(得分:2)

您可以将-replace命令与简单的正则表达式一起使用:

-replace '\s'
  

\ s匹配任何空白字符[\ r \ n \ t \ f]

试试这个:

[System.IO.File]::WriteAllText(
        'C:\website.txt',
        ([System.IO.File]::ReadAllText('C:\website.txt') -replace '\s')
    )