Преобразовать «TRUE» в 1 в переменной powershell

#powershell

#powershell

Вопрос:

Я читаю ячейку из Excel, которая содержит TRUE или FALSE . После прочтения мне нужно вставить значение в таблицу в SQL Server с типом bit данных.

Я получаю значение в ячейке с помощью этой строки кода:

    $myvariable =  $WorkbookTotal.Cells.Item($ExcelRowToRead, 10).Text
 

Есть ли способ преобразовать TRUE or FALSE в 1 or 0 без написания оператора if? Мне нужно $myvariable стать значением 1/0..

Комментарии:

1. Вы пробовали [int][bool]$myvariable = $WorkbookTotal.Cells.Item($ExcelRowToRead, 10).Text ?

2. О чем $WorkbookTotal.Cells.Item($ExcelRowToRead, 10).Value ?

Ответ №1:

Вы можете преобразовать строковое значение в [bool] с bool.Parse , а затем преобразовать в [int] :

 $myvariable = "TRUE"
$bit = [int][bool]::Parse($myvariable)
 

После чего:

 PS ~> $bit
1
 

Комментарии:

1. Спасибо! Итак, этот стиль с квадратными скобками и двойным двоеточием; как он называется?

2. [Type]::Method это вызов статического метода, [int] это приведение типа или преобразование.

3. Лассе попал в точку! [bool]::Parse <- означает «вызвать элемент ‘Parse’ для типа ‘bool'»