В своем стремлении улучшить свои навыки PowerShell, вот пример уродливого решения простой проблемы. Любые предложения по улучшению oneliner приветствуются.
Миссия: урезать огромную библиотеку значков до чего-то более управляемого. Исходная структура каталогов выглядит следующим образом:
/Apps and Utilities
/Compile
/32 Bit Alpha png
/Compile 16 n p.png
/+ 10 or more files
/+ 5 more formats with 10 or more files each
/+ 20 or so icon names
/+ 22 more categories
Я хочу скопировать 32-битные альфа-файлы png и немного сгладить структуру каталогов. Вот мое быстрое и очень грязное решение:
$dest = mkdir c:\icons; gci -r | ? { $_.Name -eq '32 Bit Alph
a png' } | % { mkdir ("$dest\" + $_.Parent.Parent.Name + "\" + $_.Parent.Name); $_ } | gci | % { cp $_.
FullName -dest ("$dest\" + $_.Directory.Parent.Parent + "\" + $_.Directory.Parent) }
Не приятно, но это решило мою проблему. Результирующая структура:
/Apps and Utilities
/Compile
/Compile 16 n p.png
/etc
/etc
/etc
Как бы вы это сделали?