台灣最大程式設計社群網站
線上人數
1220
 
會員總數:239929
討論主題:186060
歡迎您免費加入會員
討論區列表 >> 其他語言 >> 請教查詢硬碟可用空間的vbs問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教查詢硬碟可用空間的vbs問題
價值 : 100 QP  點閱數:276 回應數:2

樓主

syman888
門外漢
0 1
20 1
發送站內信


登入以投票
0
登入以投票
不好意思,請教一下各位先進

小弟因為在公司有部署軟體的需求,在部署安裝軟體前想先檢測USER端可用的C 槽空間

在網路上找到一個vbs的寫法可以查詢目前C 槽可用的硬碟空間
但因為對vbs不熟,不知道怎麼改成會自動判斷可用的硬碟空間是否大於自己想要的空間

例如判斷目前的C 槽可用空間小於5GB,我就不做部署安裝,若大於 5GB就可以進行部署

目前下面的VBS只能查詢C 槽可用空間並轉成GB單位並寫到 C:\temp\C_FreeSpace.txt

但我現在的需求是想改成判斷可用空間大於5GB就執行C:\temp\deploy.exe

若可用空間小於5GB就不動作結束VBS,請問有VBS的高手可以協助教學一下嗎?謝謝!!

VBS內容如下:

strComputer = "."
Set fso = CreateObject("Scripting.FileSystemObject")
Set objTextFile = fso.OpenTextFile("C:\temp\C_FreeSpace.txt",2,True)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DeviceID = 'C:'")
For Each objDisk in colDisks
ProceeSpace1 = objDisk.FreeSpace / 1024
ProceeSpace2 = ProceeSpace1 / 1024
ProceeSpace3 = ProceeSpace2 / 1024
objTextFile.Writeline("C: 可用剩餘空間為:" & FormatNumber(ProceeSpace3,2) & " GB")
Next




搜尋相關Tags的文章: [ Vbs ] , [ 磁碟可用空間 ] ,
本篇文章發表於2017-02-18 22:05
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

blackwing
捐贈 VP 給 blackwing 檢舉此回應
哈囉!syman888
小弟對vbs不熟,找google求助,下面的code理論上可執行,你可以試試看:

要部署的話,可以試試看www.autohotkey.com會比較簡單。
本篇文章回覆於2017-02-20 17:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

syman888
檢舉此回應
太棒了!謝謝您~
真的可以,不過程式碼那個執行的部份第十六行最後少了一個 "
我在其他討論區了問到了另一個shell script 解法,如下,也分享給有需要的人參考喔!

FOR /F "usebackq tokens=3" %%s IN (`DIR C:\ /-C /-O /W`) DO (
SET FREESPACE=%%s
)
ECHO FREESPACE is %FREESPACE%

IF %FREESPACE% gtr "5120000000" @ECHO Enough_Space

在使用gtr上一直覺得怪怪的,無法正常判斷是否有大於我要的可用空間

後來才發現是下面的原因

CMD 運算是 32 位元有符號(正負)運算,
所以不能超過 2147483647,
(也就是不能超過 4GB, 2 的 32 次方).
本篇文章回覆於2017-02-21 08:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.