Невозможно преобразовать значение «Год» в тип «System.Int32». Ошибка: «Входная строка была в неправильном формате.» - PullRequest
0 голосов
/ 25 июня 2018

код -

# Get current Year and Month
param ([Int]$Year, [Int]$Month, [String]$Environment, [String]$Report, [String]$Username, [String]$Password)

function Get-DaysOfMonth {
    Param ([Int]$Year, [Int]$Month)
    $MonthDays = New-Object System.Collections.Generic.List[System.Object]
    1..([datetime]::DaysInMonth($Year, $Month)) |
        ForEach-Object {
           $Day = ([datetime]::ParseExact("$_/$Month/$Year", "d/M/yyyy", [System.Globalization.CultureInfo]::InvariantCulture)).ToString("dd")
           $MonthDays.Add($Day)
        }
    return $MonthDays
}

Write-Host "The Year Selected is: " + [String]$Year
Write-Host "The Month Selected is: " + [String]$Month
Write-Host "The Environment Selected is: $Environment"
Write-Host "The Report Generated is: $Report"
Write-Host "Export Generating as User: $Username"

$Days = Get-DaysOfMonth -Year $Year -Month $Month

При запуске я получаю следующую трассировку:

Cannot process argument 
transformation on parameter 'Year'. Cannot convert value "Year" to type 
"System.Int32". Error: "Input string was not in a correct format."
    + CategoryInfo          : InvalidData: (:) [myscript.ps1], ParentContai 
   nsErrorRecordException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,myscript 
   .ps1

Кажется, у него проблема с преобразованием моей переменной Integer в строку. Как мне это исправить?

Я запускаю скрипт по следующей команде

myscript.ps1 -Year 2018 -Month 02 -Environment PROD -Report event -Username myacct -Password mypass

1 Ответ

0 голосов
/ 25 июня 2018

Все еще существует проблема с вашими Write-Host командами.

Он работает здесь, но выводит:

The Year Selected is:  + [String]2018
The Month Selected is:  + [String]2
The Environment Selected is: PROD
The Report Generated is: event
Export Generating as User: myacct

Один из способов решить эту проблему - использовать оператор формата строки:

"The Year Selected is: {0}`nThe Month Selected is: {1}`nThe Environment Selected is: {2}`nThe Report Generated is: {3}`nExport Generating as User: {4}" -f $Year,$Month,$Environment,$Report,$Username

The Year Selected is: 2018
The Month Selected is: 2
The Environment Selected is: PROD
The Report Generated is: event
Export Generating as User: myacct
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...