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.


Podobne Tematy: