В Powershell я могу получить элемент в текущей папке с помощью этой команды

ls | ft name >list.txt

Но если я открою list.txt Microsoft Office Word.Тогда мы видим, что в каждой строке может быть пустой символ

Так как удалить эти пробелы?

3 ответа3

1

Поскольку задачей Format-Table является правильное размещение данных в столбцах, вы не должны удивляться пробелам в конце.
Кстати, перенаправляя вывод, создает файлы UTF16 с спецификацией (которую может интерпретировать Msword)

Аналогично версии uSlackr:

(gci).Name | sc list.txt

Используя PowerShell также в Linux/MacOS, я стараюсь избегать псевдонимов, специфичных для ОС, но использую псевдонимы PowerShell - поэтому не dir/ls а gci или Get-ChildItem

0

Powershell применяет некоторое форматирование к вашему столу, включая его заполнение. Эта команда немного очистит файл, но потеряет заголовок.

ls |foreach {$_.ToString()} |set-content list.txt
0

Как сказал @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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .