?
Solved

VBScript: Output to screen

Posted on 2010-09-06
3
Medium Priority
?
1,814 Views
Last Modified: 2012-05-10
Hi there,

I have this script that outputs to a file (Thanks Psy053).

I need it to output on screen so I can use the datas in a batch file.

@ECHO OFF
FOR /F "tokens=1-10 delims=," %%A IN ('cscript GetVolumeInfos.vbs') DO ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J
PAUSE

I know this batch file is kind of useless, but it's just to test the VBScript.

REF: http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_26454651.html

Thanks for yur help,
Rene


strComputer = "."
strFileName = "DiskSpace.log"
Const Gig = 1073741824

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName,8,True)

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")

For each objOS in colOS
	strMajorVersion = Left(objOS.Version,3)
Next

For Each objDisk in colDisks

	If Not IsNull(objDisk.Size / Gig) Then retUFSize = FormatNumber(objDisk.Size / Gig,2)
	If Not IsNull(objDisk.FreeSpace / Gig) Then retUFFree = FormatNumber(objDisk.FreeSpace / Gig,2)

	retDT = DriveType(objDisk.DriveType)

	If strMajorVersion < 5.2 Then
		retFrag = "N/A, N/A"
	Else
		retFrag = Fragmentation(objDisk.DeviceID, objDisk.DriveType)
	End If

	objFile.WriteLine "" & _
		objDisk.DeviceID & ", " & _
		objDisk.DriveType & ", " & _
		retDT & ", " & _
		objDisk.FileSystem & ", " & _
		objDisk.Size & ", " & _
		retUFSize & ", " & _
		objDisk.FreeSpace & ", " & _
		retUFFree & ", " & _
		retFrag

Next
objFile.Close


Function Fragmentation(strDID, strDT)
If strDT = 3 Then
	Set colVolumes = objWMIService.ExecQuery ("Select * from Win32_Volume Where (DriveLetter='" & strDID & "')")
	For Each objVolume in colVolumes
		ret = objVolume.DefragAnalysis(boolDefrag, objReport)
		If ret = 0 Then
			Fragmentation = objReport.TotalPercentFragmentation & "%, " & objReport.FilePercentFragmentation & "%"
		Else
			Fragmentation = "Error, Error"
		End If
	Next
Else
	Fragmentation = "N/A, N/A"
End If

End Function



Function DriveType(strDT)

Select Case strDT
Case "0"
	DriveType = "Unknown"
Case "1"
	DriveType = "No_Root_Directory"
Case "2"
	DriveType = "Removable_Disk"
Case "3"
	DriveType = "Local_Disk"
Case "4"
	DriveType = "Network_Drive"
Case "5"
	DriveType = "Compact_Disk"
Case "6"
	DriveType = "RAM_Disk"
End Select 

End Function

Open in new window

0
Comment
Question by:ReneGe
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 57

Accepted Solution

by:
Bill Prew earned 1800 total points
ID: 33614694
Try this please.

~bp
strComputer = "."
strFileName = "DiskSpace.log"
Const Gig = 1073741824
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")
 
For each objOS in colOS
        strMajorVersion = Left(objOS.Version,3)
Next
 
For Each objDisk in colDisks
 
        If Not IsNull(objDisk.Size / Gig) Then retUFSize = FormatNumber(objDisk.Size / Gig,2)
        If Not IsNull(objDisk.FreeSpace / Gig) Then retUFFree = FormatNumber(objDisk.FreeSpace / Gig,2)
 
        retDT = DriveType(objDisk.DriveType)
 
        If strMajorVersion < 5.2 Then
                retFrag = "N/A, N/A"
        Else
                retFrag = Fragmentation(objDisk.DeviceID, objDisk.DriveType)
        End If
 
        Wscript.Echo "" & _
                objDisk.DeviceID & ", " & _
                objDisk.DriveType & ", " & _
                retDT & ", " & _
                objDisk.FileSystem & ", " & _
                objDisk.Size & ", " & _
                retUFSize & ", " & _
                objDisk.FreeSpace & ", " & _
                retUFFree & ", " & _
                retFrag
 
Next
 
 
Function Fragmentation(strDID, strDT)
If strDT = 3 Then
        Set colVolumes = objWMIService.ExecQuery ("Select * from Win32_Volume Where (DriveLetter='" & strDID & "')")
        For Each objVolume in colVolumes
                ret = objVolume.DefragAnalysis(boolDefrag, objReport)
                If ret = 0 Then
                        Fragmentation = objReport.TotalPercentFragmentation & "%, " & objReport.FilePercentFragmentation & "%"
                Else
                        Fragmentation = "Error, Error"
                End If
        Next
Else
        Fragmentation = "N/A, N/A"
End If
 
End Function
 
 
 
Function DriveType(strDT)
 
Select Case strDT
Case "0"
        DriveType = "Unknown"
Case "1"
        DriveType = "No_Root_Directory"
Case "2"
        DriveType = "Removable_Disk"
Case "3"
        DriveType = "Local_Disk"
Case "4"
        DriveType = "Network_Drive"
Case "5"
        DriveType = "Compact_Disk"
Case "6"
        DriveType = "RAM_Disk"
End Select 
 
End Function

Open in new window

0
 
LVL 14

Assisted Solution

by:Psy053
Psy053 earned 200 total points
ID: 33614740
Why do you need to use the data in a batch file? I might be able to wrap it all up in a VBScript.
0
 
LVL 10

Author Comment

by:ReneGe
ID: 33614848
==>Psy053
Thanks for asking. My batch file is quite large and I would not feel comfortable to ask for this in a single thread.

However, I will soon start to learn VBScript and will convert this batch file (and more) to VBScript. I will then post multiple threads in this regards.

==>bp
Thanks for helping. It worked without a sweat.


Thanks to you both and lots of cheers...,
Rene

0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
The SignAloud Glove is capable of translating American Sign Language signs into text and audio.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Simple Linear Regression
Suggested Courses
Course of the Month8 days, 9 hours left to enroll

764 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question