Показать полную графическую версию : батник на проверку свободного места по сети
iccup.platoon@vk
03-07-2013, 17:27
Компьютерный клуб. 52 2 компа + кассирский (админский). Написал батник на проверку свободного места по сети - но... Мягко говоря не работает. огорчен, мораль понижена. Помогите плз или подскажите где ошибся. Так же прошу Вас подсказать более правильный\адекватный\компактный код НО только на bat-языке... Собственно, сам код (так как он большой прилалагаю в форме файла):
iccup.platoon@vk
03-07-2013, 17:33
Еще был такой - тоже не работает
«"%systemroot%\system32\mshta.exe" "javascript:try…» — да, это, конечно, на «bat-языке» :lol:.
wmic.exe /node:Machine01,Machine02,MachineN LogicalDisk where "DriveType=3" get SystemName, Name, FreeSpace
iccup.platoon@vk
03-07-2013, 17:36
А не могли бы Вы конкретно по моему примеру написать? (имена машин А1, А2, ..., А52.)
iccup.platoon@vk
03-07-2013, 17:53
ах да - wmic.exe у меня отсутствует =)
А не могли бы Вы конкретно по моему примеру написать? (имена машин А1, А2, ..., А52.) »
wmic.exe /node:А1,А2,…,А52 LogicalDisk where "DriveType=3" get SystemName, Name, FreeSpace
ах да - wmic.exe у меня отсутствует »
Ни одной машины с Professional-версией нетути? Тогда держите WSH (само собой — не проверялось):
Option Explicit
Const TristateFalse = 0
Const TristateTrue = -1
Const TristateUseDefault = -2
Dim i
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim collSWbemObjectSet
Dim objSWbemObjectEx
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
For i = 1 To 52
strComputer = "А" & CStr(i)
WScript.Echo String(5 + Len(CStr(20 * 2^40)) + 4, "=")
WScript.Echo "System: " & strComputer
WScript.Echo
If IsEnable(strComputer) Then
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery("SELECT Name, FreeSpace FROM Win32_LogicalDisk WHERE DriveType=3")
WScript.Echo String(5 + Len(CStr(20 * 2^40)) + 4, "=")
WScript.Echo "System: " & strComputer
WScript.Echo
WScript.Echo PadLeft("Drive", 5), PadLeft("Free space", Len(CStr(20 * 2^40)) + 4)
WScript.Echo String(5, "-"), String(Len(CStr(20 * 2^40)) + 4, "-")
For Each objSWbemObjectEx In collSWbemObjectSet
With objSWbemObjectEx
WScript.Echo PadLeft(.Name, 5), PadRight(FormatNumber(.FreeSpace, 0, TristateFalse, TristateFalse, TristateTrue), Len(CStr(20 * 2^40)) + 4)
End With
Next
WScript.Echo String(5, "-"), String(Len(CStr(20 * 2^40)) + 4, "-")
WScript.Echo
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Else
WScript.Echo "Can't ping machine [" & strComputer & "]."
WScript.Echo
End If
Next
Set objSWbemLocator = Nothing
WScript.Quit 0
'=============================================================================
'=============================================================================
Function PadLeft(anyValue, intSize)
PadLeft = Left(CStr(anyValue) & Space(intSize), intSize)
End Function
'=============================================================================
'=============================================================================
Function PadRight(anyValue, intSize)
PadRight = Right(Space(intSize) & CStr(anyValue), intSize)
End Function
'=============================================================================
'=============================================================================
Function IsEnable(strAddress)
Dim objSWbemObjectEx
IsEnable = False
For Each objSWbemObjectEx In objSWbemLocator.ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "'")
With objSWbemObjectEx
If Not IsNull(.StatusCode) Then
If .StatusCode = 0 Then
IsEnable = True
End If
End If
End With
Next
End Function
'=============================================================================
Запускать, разумеется, под консольной версией — «cscript.exe».
iccup.platoon@vk
04-07-2013, 02:59
Сценарий прогоняется, но ничего не происходит...
Сценарий прогоняется, но ничего не происходит... »
А что должно происходить?
Как Вы его исполняете?
iccup.platoon@vk
05-07-2013, 23:11
Просто запускаю)) ну двойным кликом)
получилось создать и получить то что мне нужно вот таким странным образом: даже не просите меня объяснить как это вё работает, но прикол в том что бедняга батник не успевал что-то сделать и в некоторых случаях выдавал пустые значения. Прикладываю файл
Просто запускаю)) ну двойным кликом) »
И:
ничего не происходит... »
? Не верю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC