Не удалось преобразовать значение «Int32» в тип «System.Int32» - PullRequest
0 голосов
/ 11 октября 2019

Я получаю файлы некоторых размеров из некоторых папок, и значение указывается в байтах. Я хочу преобразовать их в мБ, разделив их на 1024, но хотя они оба являются int32, они не работают

Я много раз пробовал кастинг, но ничего не мешает

возврат папок traverseint

$subsize = (traverseFolder $folderName)
$i = 1024
$bytesToMb = [int]$subsizeType / $i
$fileContent = "$folderName : " + "$bytesToMb 
Add-Content "C:\Users\SolutionTeam\Documents\DBIGroupFolderSizes.txt" $fileContent

Ошибка, которую я получаю:

Cannot convert value "Int32" to type "System.Int32". Error: "Input string was not in a correct format."
At C:\Users\SolutionTeam\Documents\coding\powershell\getfoldersize\GetSize.ps1:103 char:9
+         $bytesToMb = [int]$subsizeType / [int]$i
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

Я также сделал .GetType () для $ i и $ subsize:

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Int32                                    System.ValueType
True     True     Int32                                    System.ValueType

Любые идеи

1 Ответ

0 голосов
/ 11 октября 2019

Попробуйте это:

$folderName = "c:\Temp"
$fileContent = "$foldername : {0} MB" -f ((Get-ChildItem $folderName -Recurse | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum / 1MB)
Add-Content "C:\Users\SolutionTeam\Documents\DBIGroupFolderSizes.txt" $fileContent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...