В следующем примере: Как назначить каждое значение одной переменной $ var по одному за раз?Разделить строку и присвоить первое значение переменной в powershell
$string ="A;B;C"
$Data=$string.split (";")
$Data
A
B
C
В следующем примере: Как назначить каждое значение одной переменной $ var по одному за раз?Разделить строку и присвоить первое значение переменной в powershell
$string ="A;B;C"
$Data=$string.split (";")
$Data
A
B
C
Вы можете хранить их в массиве с петлей
$string ="A;B;C"
$Data=$string.split (";")
$var = @{}
$i = 0
foreach($item in $Data){
$var[$i] = $item
$i++
}
$var[0]
$var[1]
$var[2]
EDIT: Я тупой, $data
уже массив после строки раскола, вы можете вызвать из $data[0]
, что было бы Ваша первая переменная, или:
$string ="A;B;C"
$Data=$string.split (";")
$var = $Data[0]
Вы можете использовать несколько переменных на левой стороне, а также:
$string = "A;B;C"
$D1,$D2,$D3 = $string.split(";")
Вы можете назначить несколько переменных, когда вы split
строку:
$string ="A;B;C"
$a, $b, $c = $string -split ';'
# $a = A
# $b = B
# $c = B
Если вы хотите массив, вы уже делаете это правильно:
$string ="A;B;C"
$Data = $string -split ';'
# $Data[0] = A
# $Data[1] = B
# $Data[2] = B
Как вы можете видеть, вызывая $Data.GetType()
, $Data
уже является String[]
:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array
Как я передать массив $ dbname в командлет backup-sqldatabase? Я попробовал что-то вроде ниже, и он выдает ошибку – Kelsey
Ошибка: выражение индекса массива отсутствует или недействительно. – Kelsey
Код: $ имя_бд = $ DBList.split (";") $ я = 0 Foreach ($ пункт в $ DBNAME) {\t $ имя_бд [я] = $ пункт \t резервного копирования Sqldatabase -ServerInstance $ server -Database $ dbname [i] -BackupFile $ fullbackupfile \t i ++ } – Kelsey
В тех случаях, когда вы только действительно заинтересованы в первого выхода из операции строки разделенной (как следует из названия), вы можете отказаться от оставшегося вывода, назначив ее $null
:
$first,$null = 'A;B;C' -split ';'
С остальные значения должны быть отброшены в любом случае, вы можете попросить оператор -split
только разделить один раз:
$first,$null = 'A;B;C' -split ';',2
Я использовал ниже сценарий, и она работала. $ имя_бд = $ DBList.split (";")
Foreach ($ пункт в $ DBNAME) {
Backup-Sqldatabase -ServerInstance $server -Database $item -BackupFile $backupfile
}
Arg, как 5 секунд быстрее :) –