В Powershell я могу получить элемент в текущей папке с помощью этой команды
ls | ft name >list.txt
Но если я открою list.txt
Microsoft Office Word.Тогда мы видим, что в каждой строке может быть пустой символ
Так как удалить эти пробелы?
В Powershell я могу получить элемент в текущей папке с помощью этой команды
ls | ft name >list.txt
Но если я открою list.txt
Microsoft Office Word.Тогда мы видим, что в каждой строке может быть пустой символ
Так как удалить эти пробелы?
Поскольку задачей Format-Table
является правильное размещение данных в столбцах, вы не должны удивляться пробелам в конце.
Кстати, перенаправляя вывод, создает файлы UTF16 с спецификацией (которую может интерпретировать Msword)
Аналогично версии uSlackr:
(gci).Name | sc list.txt
Используя PowerShell также в Linux/MacOS, я стараюсь избегать псевдонимов, специфичных для ОС, но использую псевдонимы PowerShell - поэтому не dir
/ls
а gci
или Get-ChildItem
Powershell применяет некоторое форматирование к вашему столу, включая его заполнение. Эта команда немного очистит файл, но потеряет заголовок.
ls |foreach {$_.ToString()} |set-content list.txt
Как сказал @uSlackr, Powershell добавляет ненужное форматирование при использовании Format-Table
. Вот мой обходной путь:
ls | ft name > list.txt
# this writes the original results to your file
$lines = Get-Content list.txt
# this gets the results of list.txt
$lines | ForEach-Object{ echo $_.ToString().Trim()} > list.txt
# and this goes through each line and removes the leading and trailing space before writing
the result to list.txt