ネットワーク速度のベンチマークを取るのに、でっかいバイナリデータが必要だったので作りました。
3 | 中身がランダム…というか順番なバイナリデータを作成します。 |
9 | [Parameter(Mandatory= $true )] |
13 | [Parameter(Mandatory= $true )] |
14 | [ValidateRange(1,8589934588)] |
23 | if( ( Split-Path $filePath -IsAbsolute ) -ne $true ){ |
25 | $outFilePath = Join-Path $pwd $filePath |
28 | write-host "Output: $outFilePath" |
29 | $fs = New-Object -TypeName System.IO.FileStream -ArgumentList $outFilePath , Create |
30 | $binWriter = New-Object -TypeName System.IO.BinaryWriter -ArgumentList $fs |
32 | [int] $limit = $byteSize / 4 |
34 | for( $cnt =0; $cnt -lt $limit ; $cnt ++){ |
35 | $binWriter . Write ( $cnt ) |
なんか私の環境では$outFilePathの文字列が相対パスのままだと、カレントディレクトリからの相対パスではないどこかわからないところにファイル作成されてしまうので、
対策として※1部分の処理を追加しました。
(処理追加前には、結局どこに出力されたのか、未だにわかっていない…)
不思議なことに※1コードがなくても、
1 | powershell -f .\binaryFileCreater.ps1 -filePath .\ test .bin -byteSize (1024*1024*1024) |
って実行すると、ちゃんとカレントディレクトリに作成されるんだよなー。でも
1 | .\binaryFileCreater.ps1 -filePath .\ test .bin -byteSize (1024*1024*1024) |
だとカレントディレクトリに作成されないんだよなー。どういうことなんだろう…?