Pchełki Powershell: wolne miejsce na dyskach

xpil - 2016/10/25 - Inne Pchełki /Pchełki /

Sposobów na sprawdzenie ilości wolnego miejsca na dysku jest dużo. Najprościej uruchomić okno Eksploratora i rzucić okiem.

Niedawno jednak naszła mnie potrzeba napisania aplikacji konsolowej, która wyświetlałaby mi informację o wolnym miejscu na wybranych dyskach w następujący sposób:

C:\ XXX GB free, YYY GB used
D:\ ZZZ GB free, VVV GB used

i tak dalej.

Po kilku nieudanych próbach napisania tego w „zwykłym” .bat spróbowałem z PowerShell. Najpierw wyguglałem możliwość użycia WMI Instrumentation, ale rozwiązanie było trochę za bardzo skomplikowane.

Zagadałem więc do znajomego, który siedzi w branży serwerowej. Nie wiem dokładnie czym się gość zajmuje, ale wiem, że jak mam jakiekolwiek pytanie dotyczące zarządzania serwerami (głównie linuksowymi, ale nie tylko), facet na 99% będzie miał odpowiedź od ręki.

Istotnie, miał: magiczne polecenie Get-PSDrive

Całość kodu wygląda tak:

While($true) {
	Clear-Host
	ForEach($Disk in $(Get-PSDrive E, F, G, H)) {
		Write-Host $Disk.Root $('{0:N0}' -f $($Disk.Free/(1024*1024*1024)))'GB free,'$('{0:N0}' -f $($Disk.Used/(1024*1024*1024)))'GB used'
	}
	Start-Sleep -s 10
}

Jeszcze raz, tym razem z lepiej „połamanymi” liniami, na małe ekrany:

While($true) {
	Clear-Host
	ForEach($Disk in $(Get-PSDrive E, F, G, H)) {
		Write-Host `
			$Disk.Root `
			$('{0:N0}' -f $($Disk.Free/(1024*1024*1024))) `
			GB free `
			$('{0:N0}' -f $($Disk.Used/(1024*1024*1024))) `
			GB used
	}
	Start-Sleep -s 10
}

A oto efekt:

powershell-diskfree-01

Jeżeli ktoś jest zainteresowany szczegółowymi objaśnieniami, zapraszam do komentarzy.

11
Dodaj komentarz

avatar
2 Comment threads
9 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
MarcinArturxpilRzast Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Rzast
Gość

Ja na „starym” laptopie mam Samurize, które pokazuje mi co chcę o dyskach na żywo. Oprócz tego id i siłę Wifi, obciążenie procka, naładowanie baterii i takie tam… Tu masz opisany program i alternatywy do niego (skądinąd fajna stronka, polecam się pobawić na niej trochę 😉 ): http://alternativeto.net/software/samurize/

Artur
Gość
Artur

get-psdrive -psprovider filesystem

Marcin
Gość
Marcin

Właśnie tego szukałem ! 😀 Jesteś wybawca dla mnie 😀 Nigdy nie pisze komentarzy ale teraz byłoby grzechem nie podziekować ! DZIEKI!!!!!
A jak zrobić zeby wynik wrzucic do txt?

%d bloggers like this: