Powershell – tworzenie losowych plik贸w

Po kr贸tkiej przerwie wracam do zno艣niej formy 馃槈 wi臋c postanowi艂em co艣 tam naskroba膰. Powracam wi臋c od razu z konkretnym skryptem w Powershell, kt贸ry umo偶liwia szybkie stworzenie potrzebnej liczby plik贸w o losowym lub nie rozmiarze. Taka funkcja bywa potrzebna, gdy chcemy przetestowa膰 pr臋dko艣膰, zapisu, pr臋dko艣膰 backupu, czy te偶 wydajno艣膰 udzia艂贸w i zasob贸w sieciowych.

Jasne, mo偶na to osi膮gn膮膰 u偶ywaj膮c standardowych narz臋dzi dost臋pnych w cmd, ale… kto by si臋 tam jeszcze w cmd bawi艂 馃槈 jednak jakby kto艣 bardzo potrzebowa艂 poni偶ej jest rozwi膮zanie tego problemu w cmd: (co prawda tworzy pliki o tym samym rozmiarze, ale je艣li kto艣 nie ma jeszcze Powershella…)

For /L %i in (1,1,25) do fsutil file createnew testfile%i.tmp 14400

Powy偶sze polecenie utworzy 25 plik贸w o nazwach: testfile1.tmp, testfile2.tmp… o rozmiarze 14kB – 14400 bajt贸w. Wiem, wiem to eleganckie i w jednej linii, ale nie po to zachwycamy si臋 na „specach” nad Powershellem, aby z niego nie korzysta膰 馃檪 Tak czy inaczej… skrypt tworz膮cy pliki b臋dzie wygl膮da艂 tak:

function CreateFile
{
 param( [string]$FilePath,[double]$size)
 $file = [System.IO.File]::Create($FilePath)
 $file.SetLength($size)
 $file.Close()
 Get-Item $file.Name
 }
 $maxfiles = 5
 for($i=1; $i -le $maxfiles; $i++)
 {
  $randomsize = Get-Random -Minimum 1 -Maximum 10
  $sizemb = $randomsize*1mb
  CreateFile -FilePath C:\test\file$i.tst -size $sizemb
 }

Zmienna $maxfiles odpowiada za… maksymaln膮 liczb臋 plik贸w jak膮 stworzy膰. W przyk艂adzie powy偶ej tworzonych jest 5 plik贸w o losowym rozmiarze pomi臋dzy 1 a 10 MB. Pliki zostan膮 umieszczone w lokalizacji C:\test i b臋d膮 si臋 nazywa膰 file1.tst, file2.tst… Je艣li chcieliby艣cie otrzyma膰 inne rozmiary wystarczy odpowiednio zmodyfikowa膰 t臋 lini臋:

$randomsize = Get-Random -Minimum 1 -Maximum 10

Aby otrzyma膰 rozmiary plik贸w z przedzia艂u 50 i 100 MB wystarczy zapisa膰 to w taki spos贸b:

$randomsize = Get-Random -Minimum 50 -Maximum 100

Przed uruchomieniem warto sobie policzy膰 czy nie zapchamy konkretnego dysku czy udzia艂u zbyt du偶膮 ilo艣ci膮 plik贸w 馃槈 Reszta parametr贸w jest ju偶 chyba bardzo czytelna.

Piotr Berent

Piotr Berent od 2002 w pocie czo艂a pracuj膮cy w 艣rodowisku IT, obecnie freelancer - In偶ynier Systemowy. Entuzjasta wirtualizacji, automatyzacji i rozwi膮za艅 opartych o narz臋dzia open-source.

Przeczytaj tak偶e...

Dodaj komentarz