首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBS -正在尝试显示卷名

VBS -正在尝试显示卷名
EN

Stack Overflow用户
提问于 2018-01-26 04:03:29
回答 2查看 213关注 0票数 0

我正在尝试这样卷名将显示在驱动器号旁边。此代码是基于名称和可用空间的驱动器选择的一部分。

我很确定我必须在vbs系列中添加一些东西,但我不确定如何做。代码最初是由aGerman编写的,可以在here上找到。

代码语言:javascript
运行
复制
Call :hdd-info
ECHO -------TESTING EXIT------
ECHO      ANY KEY TO EXIT
PAUSE >nul
EXIT


::MUST ALL BE LAST THING IN BATCH FILE
:hdd-info    
@echo off &setlocal
set "GB=1073741824"
for /f "skip=1 delims=" %%i in ('wmic logicaldisk get DeviceID^,FreeSpace^,Size^,volumename') do (
  for /f "tokens=1-3" %%j in ("%%i") do call :output %%j %%k %%l %%m 
)
goto :eof
:output
if "%3"=="" (
  rem echo Unable to discover the drive properties.
  goto :eof
)
for /f "tokens=1-5" %%i in (
  'mshta vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(FormatNumber(%3/%GB%, 2) & "" "" & FormatNumber((%3-%2)/%GB%, 2) & "" "" & FormatNumber(%2/%GB%, 2) & "" "" & Round((%3-%2)*50/%3)):Close"^)'
) do (
  set "size=      %%i"
  set "used=      %%j"
  set "free=      %%k"
  set /a "nUsed=%%l, nFree=50-%%l"
  set "namz=      %%m"
)
echo(
echo       %namz% %1 %free:~-10% GB Available

想要它显示出来:

卷名可用空间( GB )

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-26 22:24:53

新鲜的眼睛为我解决了这个问题。我必须将tokens=1-5更改为tokens=1-4

代码语言:javascript
运行
复制
Call :hdd-info

ECHO -------TESTING EXIT------
ECHO      ANY KEY TO EXIT
PAUSE >nul
EXIT


::MUST ALL BE LAST THING IN BATCH FILE
:hdd-info    
@echo off &setlocal
set "GB=1073741824"
for /f "skip=1 delims=" %%i in ('wmic logicaldisk get DeviceID^,FreeSpace^,Size^,volumename') do (
  for /f "tokens=1-4" %%j in ("%%i") do (
  call :output %%j %%k %%l %%m 
  )
)
goto :eof
:output
if "%3"=="" (
  rem echo Unable to discover the drive properties.
  goto :eof
)
for /f "tokens=1-4" %%i in (
  'mshta vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(FormatNumber(%3/%GB%, 2) & "" "" & FormatNumber((%3-%2)/%GB%, 2) & "" "" & FormatNumber(%2/%GB%, 2) & "" "" & Round((%3-%2)*50/%3)):Close"^)'
) do (
  set "size=      %%i"
  set "used=      %%j"
  set "free=      %%k"
  set /a "nUsed=%%l, nFree=50-%%l"
  set "namz=      %%m"
)
echo(
echo %namz% %1 %free:~-10% GB Available

GOTO :eof
票数 0
EN

Stack Overflow用户

发布于 2018-01-27 14:42:21

代码语言:javascript
运行
复制
On Error Resume Next
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_LogicalDisk")

For Each objItem in colItems
    Wscript.echo objItem.Caption & " " & objItem.VolumeName & " " & FormatNumber(objItem.FreeSpace/2^30, 0) & " GB free of " & " " & FormatNumber(objItem.Size/2^30, 0) & " GB"
Next

如果启动上面的脚本cscript //nologo file.vbs,它将打印到控制台窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48451024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档