2016-04-29 4 views
3

Я noob at powershell и все еще пытаюсь изучить скрипты, но спотыкаюсь об основах. У меня есть текстовый файл, который содержит список сайтовPowerShell - удалить пробелы между словами из txt-файла

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

Я бы пошел с таким подходом (где герой заменяет функцию):

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 
2

Вы можете использовать команду -replace с простым регулярным выражением:

-replace '\s' 

\ s соответствует любой белый символ пробела [\ г \ п \ т \ ф]

Попробуйте это:

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

Благодарим за отзыв, но решение Eduard Uta менее сложное и лучшее для моего скрипта, так как это небольшая часть большого скрипта. –