#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'»