powershell - Powershell 使用 psexec 和 oneliner 在远程计算机上通过排序获取文件夹大小
问题描述
我需要使用 psexec 获取远程计算机上的文件夹大小(命令限制为 255 个字符)。
主要内容:
- psexec [限制为 255 个字符] - oneliner
- 从 cmd 执行的 powershell
- 按字节排序
- 消除低于 MB 的值
我设法做到了这种方式(没有排序/大于):
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)}"
任何人都知道如何解决这个问题?
解决方案
好的,我终于做到了,文件号也一样:
powershell -exe bypass -c "gci -Dir | % { $F = gci $_.FullName -Recurse -File ; $Size = '{0:F2}' -f (( $F | Measure -Property Length -Sum).Sum /1MB) ; [PSCustomObject]@{Dir = $_.FullName ; '#' = "$($F.Count)" ; Size = $Size} } | sort {[int]$_.Size} -des"
也许这对某人有用:)
问候
推荐阅读
- swift - 使用面临错误的用户默认值转换 Int 值字符串
- swift - 如果我采用水平收集视图,如何在屏幕中间显示选定的单元格数据
- html - 定义 iframe 大小,然后让它自动调整到浏览器宽度
- javascript - 我有一个 NodeJS 后端,我正在开发与 ReactJS 前端一起工作,但我不断收到 500 错误
- android - mXparser 结果舍入
- python - 从熊猫数据框中删除与另一个数据框中的列组合不匹配的行
- django - 提交时的注册页面导致错误 Django
- python - 有没有一种在离线环境中安装“pip”、“模块”和“依赖项”的有效方法?
- amazon-web-services - aws iot 规则查询语句“union”
- php - 关于带字符串的 PHP 数组