param (
[Parameter(Mandatory=$true)]
[int]$sizeMB
)
$destinationDirectory = "K:\"
$zipFile = "C:\testfile.zip"
$filePath = "C:\testfile.zip"
$sizeBytes = $sizeMB * 1MB
$buffer = New-Object byte[] $sizeBytes
[System.IO.File]::WriteAllBytes($filePath, $buffer)
Write-Output "Datei erstellt: $filePath mit einer Größe von $sizeMB MB"
if (-Not (Test-Path $zipFile)) {
Write-Output "Die ZIP-Datei existiert nicht: $zipFile"
exit
}
$zipFileSize = (Get-Item $zipFile).Length
$csvFile = "C:\output.csv"
$counter = 1
$sumTime = 0
"Transferrate (MB/s);Größe (GB);Sekunden" | Out-File -FilePath $csvFile -Encoding utf8
while ($true) {
$destinationFile = [System.IO.Path]::Combine($destinationDirectory, "testfile_$counter.zip")
$startTime = Get-Date
Copy-Item -Path $zipFile -Destination $destinationFile
$endTime = Get-Date
$transferTime = ($endTime - $startTime).TotalSeconds
$transferRate = ($zipFileSize / 1MB) / $transferTime
$transferRate = [math]::Round($transferRate, 1)
$usedSpace = $counter * $sizeMB
$sumTime = $sumTime + $transferTime
$sumTime = [math]::Round($sumTime, 0)
"$transferRate;$usedSpace;$sumTime" | Out-File -FilePath $csvFile -Encoding utf8 -Append
$counter++
$freeSpace = (Get-PSDrive -Name D).Free / 1GB
if ($freeSpace -lt 10) {
Write-Output "Kapazitätsgrenze erreicht. Verbleibender Speicherplatz: $freeSpace GB"
break
}
}