Jump to content

Read/Capture the "Free" space from Diskpart "List Disk" output

Recommended Posts


Hey guys, what would be the best way to extract/read the following value from a diskpart, list disk, text file. I have a gui that the person specifies the disk number they want to use. Problem is, I need to extract the "Free" space value based off their Disk Input. Any ideas of the best way to do this?

Here is what I am exporting to a basic text file right now. If the user inputs the number 3 on my input box, I want to read the file and pull back the value 7167. If they entered 2 I want to pull back 4095. I have looked at things like StringRegExp and _StringExplode, but not sure or very experienced in that, or even sure if that is what I should be doing for this scenario. Any ideas, input, or examples would be greatly appreciated.

  Disk ###  Status         Size     Free     Dyn  Gpt

  --------  -------------  -------  -------  ---  ---
  Disk 0    Online           60 GB  1024 KB         
  Disk 1    Online          100 GB    10 GB         
  Disk 2    Online         4096 GB  4095 GB        *
  Disk 3    Online         7168 GB  7167 GB        *

Share this post

Link to post
Share on other sites

This should work

$s = FileRead("1.txt")

$n = "2"

; $r = StringRegExpReplace($s, '(?s).*Disk\h+' & $n & '\N+\h(\d+\h+[KG]B)\h+\D.*', "$1")  ; value + GB
$r = StringRegExpReplace($s, '(?s).*Disk\h+' & $n & '\N+\h(\d+)\h+[KG]B\h+\D.*', "$1")   ; value only
Msgbox(0,"", $r)

But if the columns are TAB separated in the file there is probably a simpler way

  • Like 1

Share this post

Link to post
Share on other sites

Thanks mikell, this worked wonderfully and was exactly what I was looking for.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.