2つのカスタム関数を使用して、ファイルの推定ファイル転送時間を取得しています。関数#1はファイルのファイルサイズを取得し、そのファイルサイズを関数#2に渡します。関数#2は、ファイルサイズを転送速度で割った合計ファイル転送時間を取得します。Powershellでファイルサイズ(文字列)をdoubleに変換するには?
問題は次のとおりです。 - 関数1は[String]を返します。 12 GB、232.13 MB 15KBなど...
ファンクション#2では、パラメータデータ型として[Double]が必要です。
これは私に値変換エラーを与える:一部を混乱
Cannot convert value "4.13GB" to type "System.Double". Error: "Input string was not in a correct format."
は、私はコマンドラインから直接ファンクション#2を呼び出した場合ということです - 私は4.13ギガバイトで入力することができ、それは計算を実行します。あなたはPowershellコマンドから簡単な数学を行うことさえできます。 4.13GB/3になり、結果が返されます。ここで
は私のスクリプトのサンプルです:PowerShellで
$filesize = Get-FileSize ('myfile.txt') # This outputs "4.13GB"
$transfertime = Get-Transfertime -Size $filesize -Speed 5.5mb -Overhead 10
ファイルサイズDOUBLEのようです。関数#2が値を受け入れるように、$ filesize変数をDOUBLEに変換するにはどうすればよいですか?
こんにちは、 '([double] 4.13GB + 0).GetType()。Name'は' double'を返します。 – sodawillow
4.13GBをSTRINGにすると、([double] "4.13GB" + 0).GetType()。名前 – tresstylez
Invoke-Expression: '(iex" 4.13GB ")。gettype()' – wOxxOm