返回列表 发帖

[数值计算] [已解决]能否让 powershell 获取磁盘空间 以适当的单位显示出来

本帖最后由 hnfeng 于 2024-10-30 17:41 编辑

批处理里面
for /f %%a in ('powershell -Command "(Get-PSDrive -Name 'C').Free"') do set DriveSize=%%aCOPY
可以获取到磁盘空间
但是获取的是字节数,不直观。有无简单的方法根据大小自动换算以 KB,MB,GB,TB 为单位的数值(若能保留一位小数更好)

不熟悉PS。请教大侠。谢谢
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

试试将ps命令换成
(Get-PSDrive -Name 'C')|out-string
然后在bat里提取 ,例如
Five66 发表于 2024-10-30 17:32



    多谢多谢

TOP

本帖最后由 hnfeng 于 2024-10-30 17:50 编辑
试试将ps命令换成
(Get-PSDrive -Name 'C')|out-string
然后在bat里提取 ,例如
Five66 发表于 2024-10-30 17:32



    结果很对,但我水平低,有点没看懂。能否解释一下:
if not defined __unit set __unit=%%e
是如何获取到上一行的 (GB) 的?最后一行不是有 %%e 吗?为什么不是 C:\
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
C                 443.63        509.93 FileSystem    C:\COPY

TOP

回复  hnfeng

给另一个版本以供参考...
aloha20200628 发表于 2024-10-30 18:15



    多谢多谢,更完美了。

当然我更看不懂了,直接用了

TOP

回复  hnfeng


   
第一行时因为之前没有定义变量__unit ,因此会通过条件 if not defined __unit ,然 ...
Five66 发表于 2024-10-30 19:22



    谢谢指教,明白了

TOP

返回列表