Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Помощь с сортировкой в get-childitem

Ответить
Настройки темы
PowerShell - [решено] Помощь с сортировкой в get-childitem

Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Необходимо вывести содержимое каталога windows на экран и в текстовый файл, учитывая следующие фильтры:
- только папки
- последняя буква имени s или t
- сортировка по именам

написал такой командлет:
get-childitem c:\windows\ -exclude *.* -include *s, *t > list.txt

При этом он выводит данные только в текстовый файл. Собственно как можно реализовать фильтрацию? С помощью -filter? Но тогда какой аргумент у этого параметра должен быть?

Отправлено: 19:39, 06-05-2013

 

Ветеран


Microsoft MVP


Сообщения: 1259
Благодарности: 860

Профиль | Отправить PM | Цитировать


dir c:\windows -inc *[st] | Where {$_.PsIsContainer} |select -exp name | sort > dir.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:55, 06-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Kazun, спасибо, все работает
Но просьба, если конечно Вам не сложно, расшифровать командлет. Хочется понимать, что там происходит.

Отправлено: 20:40, 06-05-2013 | #3


Ветеран


Microsoft MVP


Сообщения: 1259
Благодарности: 860

Профиль | Отправить PM | Цитировать


1) Получаем список директорий,которые заканчиваются на s или t,или содержат только s или t
dir - альяс на командлет get-childitem

*[st] - подробнее get-help about_Wildcards

Оболочка Windows PowerShell поддерживает несколько подстановочных
знаков наряду с подстановочным знаком звездочки.


Описание подстановочного знака Пример Совпадает Не совпадает
-------- ------------------ -------- ----------------- --------
* Совпадает с нулем или a* A, ag, Apple banana
большим числом знаков

? Совпадает точно с одним ?n an, in, on ran
знаком в указанной позиции

[ ] Совпадает с диапазоном [a-l]ook book, cook, look took
знаков

[ ] Совпадает с указанными [bc]ook book, cook hook
знаками

2) Далее,передаем объекты командлету Where-Object для проверки условия,что объект является директорией,за это отвечает свойтсво - PsIsContainer

3) Те объекты,которые попадают под условие,передаем командлету Select-Object и раскрываем свойство Name
4) Сортируем по имени
5) Перенаправляем в файл с именем dir.txt

По каждому командлету,можно почитать справку:
Get-Help Get-ChildItem -Full
Get-Help Where-Object -Full
Get-Help Select-Object -Full
Get-Help Sort-Object -Full
Get-Help about_Redirection
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:50, 06-05-2013 | #4


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное спасибо! Вроде все более или менее понял!
Но по ходу разбирательства у меня возник такой вопрос: можно ли как-то одновременно осуществить вывод результата не только в текстовый файл, но и на экран. Понятно, что можно продублировать командлет, не указав в одной из копий перенаправление вывода. Но может быть это можно сделать как-то более изящно?

Отправлено: 23:33, 06-05-2013 | #5


Ветеран


Contributor


Сообщения: 24486
Благодарности: 7117

Профиль | Отправить PM | Цитировать


Tee-Object
Using the Tee-Object Cmdlet
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:06, 07-05-2013 | #6


Ветеран


Contributor


Сообщения: 1518
Благодарности: 849

Профиль | Отправить PM | Цитировать


Цитата kelevara:
можно ли как-то одновременно осуществить вывод результата не только в текстовый файл, но и на экран. »
Код: Выделить весь код
help tee-object
Код: Выделить весь код
gci | tee 1.txt

Отправлено: 07:07, 07-05-2013 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Помощь с сортировкой в get-childitem

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Поиск с сортировкой по дате. chippo О сайте и форуме 1 20-12-2012 00:10
C/C++ - Проблема с сортировкой pashazt Программирование и базы данных 0 11-12-2012 14:20
Delphi - Проблема с сортировкой таблицы!!! novashdima Программирование и базы данных 0 07-05-2010 20:44
Выбор записей с сортировкой (MySQL) benya Вебмастеру 8 21-06-2006 21:09




 
Переход