Мне нужно получить размеры папок на удаленном компьютере, используя psexec (команда ограничена 255 символами).
Основные вещи:
- psexec [ограничение до 255 символов] - oneliner
- PowerShell, выполненный из cmd
- сортировка по байтам
- исключение значений, меньших чем в MB
Мне удалось сделать это таким образом (безsort / больше чем):
powershell -exe bypass -c "gci -Force | ?{ $_.PSIsContainer } | ForEach-Object { $_.Name + ': ' + '{0:N2} MB' -f ((gci $_ -Recurse -ErrorAction SilentlyContinue | Measure-Object -ErrorAction SilentlyContinue Length -Sum ).Sum / 1MB)}"
Но я также хочу отсортировать по байтам выходные данные и / или удалить папки с размером меньше (или, по крайней мере, начиная с 0, xx).
Спасибо за помощь.
--------- ОБНОВЛЕНИЕ ---------
Слишком плохая команда (приведенная ниже в ответе), выполненная удаленно, дает много ошибоки не заканчивай хорошо.У меня есть другая команда, которая работает на всех системах, но не знаю, как сортировать вывод по байту / второму столбцу и не превышать 255 символов .
Воткоманда [234 символа]:
powershell -exe bypass -c "gci -Force | ?{ $_.PSIsContainer } | ForEach-Object { $_.Name + ': ' + '{0:N2} MB' -f ((gci $_ -Recurse -ErrorAction SilentlyContinue | Measure-Object -ErrorAction SilentlyContinue Length -Sum ).Sum / 1MB)}"
и более короткая версия [173 символа]:
powershell -exe bypass -c "gci -Force | ?{ $_.PSIsContainer } | % { $_.Name + ': ' + '{0:N2} MB' -f ((gci $_ -Recurse -EA 0 | Measure-Object -EA 0 Length -Sum ).Sum / 1MB)}"
Кто-нибудь знает, как решить эту проблему?