Преобразовать команду xargs Bash в PowerShell? - PullRequest
17 голосов
/ 27 апреля 2009

У меня есть простая команда Bash для автоматического изменения размера некоторых изображений на веб-сайте с низким трафиком с помощью ImageMagick - я хотел бы преобразовать это в команду PowerShell, чтобы мне не пришлось устанавливать Cygwin на мой веб-сервер. Кто-нибудь может одолжить свои навыки PSh здесь?

ls | xargs -I {} rconvert "{}" -resize 128x128\> "{}"

1 Ответ

26 голосов
/ 27 апреля 2009

Лучше всего направить вывод ls в командлет foreach-object следующим образом (% является псевдонимом для foreach-object):

ls | %{rconvert $_ -resize 128x128}

Редактировать: ls выводит список объектов FileInfo или DirectoryInfo в конвейер. Чтобы отфильтровать объекты DirectoryInfo, используйте фильтр where-object (? Is alias):

ls | ?{-not $_.PSIsContainer} | %{rconvert $_ -resize 128x128}

Если вам необходимо получить доступ к полному пути в вашей команде, используйте свойство FullName объекта FileInfo (само $ _ будет преобразовано в $ _. Name, которое является просто именем файла):

ls | ?{-not $_.PSIsContainer} | %{rconvert $_.FullName -resize 128x128}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...