Задать вопрос
  • Сравнение двух массивов в Powershel?

    @MaxKozlov Куратор тега PowerShell
    Вам потребуется преобразовать ваши hastable в [PSCustomObject] и
    изучить возможности Compare-Object

    Преобразовать просто - [PSCustomObject]$hastable
    А потом, когда у вас будут объекты, а не хеши, их можно сравнивать по отдельным свойствам
    В частности, можно будет попробовать
    #...
    # вместо # $stammArtikelWebseite += $newRoW
    $stammArtikelWebseite += [PSCustomObject]$newRoW
    # ...
    # то что в $Import - уже объекты, их можно менять на месте
    # или также из вашего хеша сделать 
    # вместо # $stammArtikelcsv += $newRow1
    $stammArtikelcsv += [PSCistomObject]$newRow1
    #...
    
    # А потом:
    Compare-Object -ReferenceObject  $stammArtikelWebseite  -DifferenceObject $stammArtikelcsv -Property preisohne
    Ответ написан
    1 комментарий
  • Генерация случайного списка в Powershell?

    @MaxKozlov Куратор тега PowerShell
    Учитывая, что это все-таки powershell, а не basic, я бы написал так:
    # Сразу используем массив, а не строку - можно обойтись без деления на части
    $ComputerList = "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10"
    Write-Host -ForegroundColor Magenta "Количество компьютеров:" $ComputerList.Length
    
    # Get-Random Умеет сам выбирать нужное количество элементов, поданных на вход
    # к тому же он выдаёт гарантированно неповторяющиеся элементы, ваш вариант потенциально может выдать, например, два пятых компа
    $NewList = $ComputerList | Get-Random -Count 5
    
    Write-Host -ForegroundColor Green "Количество новых компьютеров:" $newList.Length
    Write-Host -ForegroundColor Red "Список новых компьютеров:" $newList
    Ответ написан
    1 комментарий
  • Генерация случайного списка в Powershell?

    $ComputerList = "PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10"
    $AllComputer = $computerList.Split(",")
    Write-Host -ForegroundColor Magenta "Количество компьютеров:" $AllComputer.Length
    $newList = @()
    # for ($i =0; $i -eq 4; $i++) { "-eq" - условие выполнения содержимого цикла, у вас оно не выполняется, т.к. "0=4" - Ложь
    for ($i =0; $i -le 4; $i++) {
    $index = Get-Random -Maximum $AllComputer.Length
    # $newList[$i] = $ComputerList[$index] - добавление в список по несуществующему индексу (изначально список пуст), $ComputerList - не список а строка, которую Вы преобразуете в список (строка 2) и складываете в переменную $AllComputer
    $newList += $AllComputer[$index]
    }
    Write-Host -ForegroundColor Green "Количество новых компьютеров:" $newList.Length
    Write-Host -ForegroundColor Red "Список новых компьютеров:" $newList
    Ответ написан
    1 комментарий