Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185

Проблема с переменными в обертке

26.06.2019, 13:52. Показов 2678. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток,
привожу код в порядок. (ниже только часть кода...)

возник вопрос как обратиться к переменной в первых скобках
и к переменной во вторых скобках по отдельности
т.е

1я_часть) @{ sqlinstance = "localhost"; sqlcredential = $Cred1 }
2я_часть) @{ sqlinstance = "localhost\KASSA"; sqlcredential = $Cred2 }

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

@instance???1_я
@instance???2_я

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ParamSplat = @(
    @{ sqlinstance = "localhost"; sqlcredential = $Cred1 }, @{  sqlinstance = "localhost\KASSA"; sqlcredential = $Cred2 }
)
foreach ($instance in $ParamSplat) {
 $SysdbList = Get-DbaDatabase @instance -ExcludeSystem
 ## COdes
 Restore-DbaDatabase @instance???1_я -Path $DatabaseList -UseDestinationDefaultDirectories -WithReplace| Format-Table
 Restore-DbaDatabase @instance???2_я -Path $DatabaseList -UseDestinationDefaultDirectories -WithReplace| Format-Table
 
 
 $SysdbList | Set-DbaDbRecoveryModel -RecoveryModel full -Confirm:$false | Format-Table
 $SysdbList | Set-DbaDbOwner | Format-Table
 Repair-DbaInstanceName @instance -AutoFix -Force
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.06.2019, 13:52
Ответы с готовыми решениями:

Проблема с переменными
Доброго времени суток! При написании кода столкнулся с данной ошибкой: invalid conversion from 'const uint16_t (*) {aka const short...

Проблема с переменными
Доброго времени суток! При написании кода столкнулся с данной ошибкой: invalid conversion from 'const uint16_t (*) {aka const short...

Проблема с переменными
Кароче проблема состоит в том,что для функции CopyFile(char *path1,zhar *path2,FALSE) нужны пути файлов переменной char *. Да,вроде,что...

30
 Аватар для alhaos
1934 / 549 / 155
Регистрация: 20.02.2019
Сообщений: 2,675
Записей в блоге: 77
28.06.2019, 10:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от bidstrup Посмотреть сообщение
"Windows Powershell in Action 3rd Edition", Bruce Payette, Richard Siddaway, 2018 Manning
Путячая книжка
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
28.06.2019, 11:37
возвращаясь к split, там в книжке любопытный есть пример на странице 111
1
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.06.2019, 11:37
Цитата Сообщение от bidstrup Посмотреть сообщение
если кто-то категорически против двух вызовов Get-ChildItem
Я против, т.к. в хозяйстве есть каталоги с миллионами файлов

А за where({},'split') спасибо! В личной практике хватает -incl (или -excl) *sample*, но штука интересная.

Цитата Сообщение от bidstrup Посмотреть сообщение
очень замысловато
Пример со switch был на тот случай, когда автор темы решит, что разделения на sample и всё остальное уже не хватает.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.06.2019, 12:13
Цитата Сообщение от bidstrup Посмотреть сообщение
в книжке любопытный есть пример на странице 111
Открыл книжку в вэбе, а там без номеров страниц

Помимо Split, у метода Where показаны ещё First/Last и Until/SkipUntil, что тоже может очень пригодиться. С одной оговоркой - всё это великолепие доступно с PS 4
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
28.06.2019, 12:25
Цитата Сообщение от KDE777 Посмотреть сообщение
Открыл книжку в вэбе, а там без номеров страниц
поискать по ключевой фразе 'predicate function'

Добавлено через 4 минуты
Цитата Сообщение от KDE777 Посмотреть сообщение
всё это великолепие доступно с PS 4
на microsoft-ресурсах другие сочетания, чем powershell 7, запрещены под угрозой увольнения ))
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.06.2019, 12:47

Не по теме:

Цитата Сообщение от bidstrup Посмотреть сообщение
на microsoft-ресурсах другие сочетания, чем powershell 7, запрещены под угрозой увольнения ))
Ага, вот только в MS-описаниях WMF'ов есть раздел "Product Compatibility Status" и мигрировать (на новые версии) Exchange, SharePoint, Lync и т.п. инфраструктуру компании (попутно выкладывая миллионы на новые лицензии) из-за того, что в свежем PS появился метод .where() - так себе идея :)



Добавлено через 10 минут
Цитата Сообщение от bidstrup Посмотреть сообщение
поискать по ключевой фразе 'predicate function'
Если вы про этот пример:

PowerShell
1
2
3
$colors = "Black,Brown,Red,Orange,Yellow,Green,Blue,Violet,Gray,White"
$count  = @(0)
$colors -split {$_ -eq ',' -and ++$count[0] % 2 -eq 0 }
Code
1
2
3
4
5
Black,Brown
Red,Orange
Yellow,Green
Blue,Violet
Gray,White
То да, очень любопытное разделение на пары.
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
28.06.2019, 13:05
осталась не вполне ясной история с переменной $count,
которая не работает, будучи скаляром, и которая работает, будучи массивом.

То есть, правильных слов, в точности описывающих именно такое поведение перменной, в книге не приведено.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.06.2019, 13:25
Цитата Сообщение от bidstrup Посмотреть сообщение
осталась не вполне ясной история с переменной $count,
которая не работает, будучи скаляром, и которая работает, будучи массивом.
Получается, что тут вопрос области действия (scope) переменных, используемых в скрипт-блоке split'а:

PowerShell
1
2
3
$colors = "Black,Brown,Red,Orange,Yellow,Green,Blue,Violet,Gray,White"
$global:count  = 0
$colors -split {$_ -eq ',' -and ++$global:count % 2 -eq 0 }
Code
1
2
3
4
5
Black,Brown
Red,Orange
Yellow,Green
Blue,Violet
Gray,White
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
28.06.2019, 14:00
Предположим, но почему тогда $count в качестве массива вполне себе виден без спецификации его области видимости ?

Добавлено через 5 минут
дяденька там пишет странные вещи: 'Because the scriptblock is
executed in its own scope, you must pass it an array so it can modify the value'

Добавлено через 5 минут
Подождем GregZakharov, может он нам прояснит, почему у массива такие преференции по видимости.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.06.2019, 14:28
Цитата Сообщение от bidstrup Посмотреть сообщение
почему у массива такие преференции по видимости
Ага, интересный вопрос:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
$colors = "Black,Brown,Red,Orange,Yellow,Green,Blue,Violet,Gray,White"
 
$Count1        = @(0)
$Count2        = 0
$Global:Count3 = 0
 
$colors -split {$_ -eq ',' -and ++$Count1[0] % 2 -eq 0 }
''
$colors -split {$_ -eq ',' -and ++$Count2 % 2 -eq 0 }
''
$colors -split {$_ -eq ',' -and ++$Global:Count3 % 2 -eq 0 }
 
Get-Variable -Scope Global -Name Count* | ft Name,Value,Visibility
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Black,Brown
Red,Orange
Yellow,Green
Blue,Violet
Gray,White
 
Black,Brown,Red,Orange,Yellow,Green,Blue,Violet,Gray,White
 
Black,Brown
Red,Orange
Yellow,Green
Blue,Violet
Gray,White
 
Name   Value Visibility
----   ----- ----------
Count1 {9}       Public
Count2 0         Public
Count3 9         Public
Добавлено через 21 минуту
Кстати, $Script:Count скрипт-блок split'а тоже видит, а вот так не хочет:

PowerShell
1
New-Variable -Scope Global -Name Count -Value 0 -Visibility Public
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
28.06.2019, 15:41
$Global:var и $Script:var я всегда считал синонимами.
и поэтому в 5-ой строке вмест $Global:Count3 можно написать просто Count3 и скриптблок { ++$Global:Count3 } её подхватит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2019, 15:41

Проблема с переменными
Доброго времени суток, возникла проблема: <?php $a="123"; ?> <form> <input type="button" name="answer"...

Проблема с переменными
Здравствуйте, недавно возникла такая проблема: писал я, значит, элементарную программу на с++ с таблицей умножения, запустил и заметил...

Проблема с переменными
У меня есть переменная $shop в ней хранятся все данные о магазинах.Так же есть переменная $distanc в ней хранится расстояние от...

Проблема с переменными
Я недавно начал изучать c++ и решил создать небольшой текстовый файтинг. Я столкнулся с небольшой проблемой: после изменения переменных, их...

Проблема с глобальными переменными
Итак, имеется программа - Математическая Модель движения движения объекта. В ней планируется использование нескольких (около десятка)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru