Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Проблема с формированием массива

Ответить
Настройки темы
PowerShell - [решено] Проблема с формированием массива

Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Не понимаю как формируется array.
Делаю функцию, которая будет запускать 10 нужных процессов и выводить их PID в процессе создания.
Я понимаю как сделать вывод уже после их запуска - это намного проще, но я хочу именно выводить ПИД после каждого запуска.
Вроде сделал и (как мне кажется) должно работать, но выдает результаты c повторами. Не могу понять почему.
Код: Выделить весь код
function Start-Tors
{
  # Запускаем в цикле 10 соединений Тора
  for ($i = 1;$i -le 10;$i++)
  {
    Start-Sleep -Seconds 1
    Write-Host -ForegroundColor Green -NoNewline -Object "$i. "
    Start-Process -FilePath $TorExe -WorkingDirectory $TorDirectory -ArgumentList "-f $TorConfigs\torrc.$i" -WindowStyle Hidden
    Write-Host -ForegroundColor Yellow -NoNewline -Object 'PID: '
    $Tors = Get-Process -Name tor-real
    [array]$TorsIDs = 1111
    for ($n = 0;$n -lt $Tors.Length + 1;$n++)
    {
      if (-not($Tors.Id[$n] -in $TorsIDs))
      {
        #$Tors[$n] -in $TorsIDs
        $TorsIDs += $Tors.Id[$n]
      }
    }
    $a = $TorsIDs[$i]
    Write-Host -ForegroundColor Cyan -Object $a
  }
}
Вывод
Скрытый текст

PS C:\Users\Vlados> . 'C:\Users\Vlados\Desktop\scripts\MT.ps1'
1. PID: 1372
2. PID: 2800
3. PID: 9352
4. PID: 9352
5. PID: 10184
6. PID: 10216
7. PID: 10216
8. PID: 10216
9. PID: 10216
10. PID: 10216

PS C:\Users\Vlados> . 'C:\Users\Vlados\Desktop\scripts\MT.ps1'
1. PID: 4228
2. PID: 5624
3. PID: 9576
4. PID: 9576
5. PID: 9576
6. PID: 9576
7. PID: 9576
8. PID: 9576
9. PID: 9576
10. PID: 9576

Отправлено: 17:32, 21-01-2023

 

Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Рубрика: сам спросил - сам ответил.
Как обычно в прекрасном PS есть вещи вроде -PassThru избавляющие от колхоза.

Код: Выделить весь код
function Start-Tors
{
  # Запускаем в цикле 10 соединений Тора
  for ($i = 1;$i -le 10;$i++)
  {
    Write-Host -ForegroundColor Green -NoNewline -Object "$i. "
    $App = Start-Process -FilePath $TorExe -WorkingDirectory $TorDirectory -ArgumentList "-f $TorConfigs\torrc.$i" -WindowStyle Hidden -PassThru
    Write-Host -ForegroundColor Yellow -NoNewline -Object 'PID: '
    Write-Host -ForegroundColor Cyan -Object $App.Id
  }
}

Отправлено: 17:47, 21-01-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


nwss, в функциональном программировании, есть хорошее общее правило:
если есть возможность написать функцию детерминированной (ещё их называют "чистыми"), то так и делайте.

Совсем обойтись без недетерминированных вещей или без побочных эффектов, наверное, вряд ли возможно в любой программе, но при любой возможности, их необходимо минимизировать. Это делается для того, чтобы уменьшить количество ошибок при разработке программ... это как бы рекомендация для общего случая.

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:28, 21-01-2023 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Проблема с формированием массива

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Распределение массива twinzzz75 Windows Server 2008/2008 R2 10 19-01-2012 17:00
[решено] проблема с формированием отчета в 1с 8.2 golife Microsoft Windows NT/2000/2003 5 21-09-2011 19:33
C/C++ - заполнение массива Lisiy_egik Программирование и базы данных 18 20-11-2009 14:58
Установка - Проблема с драйверами для raid массива при установке win 7 Vladimir_P Microsoft Windows 7 1 15-11-2009 14:59
проблема с созданием RAID массива, точнее с его установкой :) tyfed Непонятные проблемы с Железом 18 30-07-2008 08:39




 
Переход