Получить значения из массива для выдачи - PullRequest
1 голос

при попытке получить строку для каждого элемента получит полную переменную вместо элемента.

Я пробовал foreach и с тем же результатом

$test = (Get-Content "xxxx.sdgm") -match "Install,"
    $package =  ($test).replace("Install,", "")
    $first = ($package).substring(0,4)
    $second = ($test).replace("Install,", "").substring(4, 16)
    for ($i = 0; $i -lt $first.Count; $i++)
    { 
        "$second[$i]"
    }

Ожидаемые результаты:

PS C:\Windows\system32> $second[1]
RAMP0001600WEN00

PS C:\Windows\system32> $second[2]
WEST0005000WEN00

PS C:\Windows\system32> $second[3]
VC101003031WEN00

Фактические результаты:

PS C:\Windows\system32> C:\Temp\chuches\testing.ps1
ODFX0001000WEN00 RAMP0001600WEN00 WEST0005000WEN00 VC101003031WEN00 CLNT0010203NEN00 NLS10010202WEN00 ODCR0010050WEN00 STAR0036000WEN00[0]
ODFX0001000WEN00 RAMP0001600WEN00 WEST0005000WEN00 VC101003031WEN00 CLNT0010203NEN00 NLS10010202WEN00 ODCR0010050WEN00 STAR0036000WEN00[1]
ODFX0001000WEN00 RAMP0001600WEN00 WEST0005000WEN00 VC101003031WEN00 CLNT0010203NEN00 NLS10010202WEN00 ODCR0010050WEN00 STAR0036000WEN00[2]
.
.
.
[7]

(Моя главная цель - объединить $ first и $ second, но я застрял на том, чтобы заставить его работать, поэтому $ first просто пока есть, пока я не смогу заставить его работать, ожидаемый результат будет «test-path $ first \ $» второе "внутри, что для заявления)

Заранее спасибо.

1 Ответ

0 голосов
/ 08 мая 2019

Предполагается, что выходные данные из первой строки соответствуют следующим строкам:

$test = @("Install,ODFX0001000WEN00", "Install,RAMP0001600WEN00", "Install,VC101003031WEN00", "Install,WEST0005000WEN00", "Install,CLNT0010203NEN00", "Install,NLS10010202WEN00", "Install,ODCR0010050WEN00", "Install,STAR0036000WEN00")

Мы можем сделать следующее. Я изменил '16' во второй подстроке, чтобы взять длину строки

$test = @("Install,ODFX0001000WEN00", "Install,RAMP0001600WEN00", "Install,VC101003031WEN00", "Install,WEST0005000WEN00", "Install,CLNT0010203NEN00", "Install,NLS10010202WEN00", "Install,ODCR0010050WEN00", "Install,STAR0036000WEN00")

$package =  ($test).replace("Install,", "")
$first = ($package).substring(0,4)
$second = ($test).replace("Install,", "").substring(4, $test.Length)
for ($i = 0; $i -lt $first.Count; $i++)
{
    Test-Path "C:\$($first[$i])\$($second[$i])"
}

Чтобы объяснить проблему, возникающую при выводе строки, вместо вывода одного объекта из массива вы выводите полный массив каждый раз. Это из-за кавычек.

Если вы удалите кавычки вокруг $second[$i], это даст ожидаемый результат.

$test = @("Install,ODFX0001000WEN00", "Install,RAMP0001600WEN00", "Install,VC101003031WEN00", "Install,WEST0005000WEN00", "Install,CLNT0010203NEN00", "Install,NLS10010202WEN00", "Install,ODCR0010050WEN00", "Install,STAR0036000WEN00")

$package =  ($test).replace("Install,", "")
$first = ($package).substring(0,4)
$second = ($test).replace("Install,", "").substring(4, $test.Length)
for ($i = 0; $i -lt $first.Count; $i++)
{
    $second[$i]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...