1

Я не хочу, чтобы вывод ls (Get-ChildItem) был вертикальным (один файл на одну строку) в Powershell. Я хочу, чтобы он был горизонтальным (как таблица в Linux). После поиска в Интернете я не знаю, как это сделать.

И ls -n | Format-Table не работает. Это все еще вертикально.

Я не являюсь носителем английского языка, так что простите меня за некоторые грамматические ошибки.

1 ответ1

1

Я не совсем уверен, почему вы хотели бы сделать / ожидать этого на Windows, но это примерно так же близко, как вы получите, с Win PoSH изначально.

collect the path listing, split on the line feed, join with a space delimiter 
(ls -n) -split "`n" -join " "

Файловая система Windows просто не отображает файлы таким образом, и цель Win PoSH не состоит в том, чтобы имитировать действия файловых систем других ОС, поскольку она будет использовать просто список строк, а не табличное представление в * NIX. , Нет цветовой подсветки файла или каталогов.

Прежде чем вы спросите, нет, вы не можете просто использовать Format-Table для того, что я показываю.

Если вы хотите этот вид, то вам нужно написать свою собственную оболочку для LS/GCI. Используйте PoSHv6 на * NIX или OSX или используйте порт ls, как отмечено в другом ответе. Если вы используете Win10, включите WSL (Bash в Linux) и просто используйте WSL вместо Win PoSH.

Конечно, вы можете выбрать только файлы или каталоги.

(ls -n -directory) -split "`n" -join " "

(ls -n -file) -split "`n" -join " "

Вы можете использовать командлет Format-Wide в зависимости от используемой версии PoSH.

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-wide?view=powershell-6

ls | Format-Wide -Column 5

Но вы не можете сделать, это потерпит неудачу, никакого обходного пути таким образом.

ls -n | Format-Wide -Column 5

Вы должны делать такие вещи, как, так как это командлет Format-Wide делает эту работу.

ls | Format-Wide -Column 5 -Property Name

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