powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Windows [игнор отключен] [закрыт для гостей] / PowerShell 2.0 навигация внутри Foreach
18 сообщений из 18, страница 1 из 1
PowerShell 2.0 навигация внутри Foreach
    #40001368
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello world!
Мне нужно перебрать все подпапки и во время этого перебора вытащить нужную мне информацию.
я делаю это так:
Код: powershell
1.
2.
3.
4.
import-module sqlps
$startPath = "SQLSERVER:\sqlas\n01000039\DEFAULT\databases\OLAP\cubes\Cube\MeasureGroups"
$measures = gci
Foreach ($m in $measures) {$curPath = $startPath + "\" +  $m.Name cd $curPath }


получая ошибку.
Подскажите, как мне это исправить?
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40001376
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2,
если cd вынести за цикл, то последнее значение переменной $curPath получается корректным.
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40001400
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40002178
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно сформулировано не понятно.
Пусть есть корневая папка "SQLSERVER:\sqlas\n01000039\DEFAULT\databases\OLAP\cubes\Cube\MeasureGroups"
В ней на третьем уровне вложенности есть нужные мне элементы

[MeasureGroups]
|-------------->[ABC-анализ]
|---------------------------->[Partitions]
|--------------------------------------->[Fact Номенклатура SKU ALL]

... .... ... ...

|-------------->[Sale]
|---------------------------->[Partitions]
|--------------------------------------->[View Fact Sale 2013 2014]
|--------------------------------------->[View Fact Sale 2015 2017]
|--------------------------------------->[View Fact Sale 2018 And After]
|--------------------------------------->[View Fact Sale 2019]
|--------------------------------------->[View Fact Sale 2020]

Количество элементов на первом и третьем уровне вложенности может меняться.

Как мне их перебрать?

Моя задумка была в том, чтобы перейти в корневую папку.
Код: powershell
1.
2.
	$startPath = "SQLSERVER:\sqlas\n01000039\DEFAULT\databases\OLAP\cubes\Cube\MeasureGroups"
	cd $startPath


Потом положить в переменную $measures коллекцию элементов находящихся не первом уровне вложенности.
Код: powershell
1.
	$measures = gci


Затем перебрать их в цикле Foreach, на каждой итерация формируя нужный мне путь, который ведет на третий уровень вложенности.
Код: powershell
1.
	$curPath = $startPath + "\" + $m.Name + "\Partitions" cd $curPath $item = gci



Почему PS ругается на cd?
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40009351
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2,
Решил таким образом:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
# Подключаю модуль SQL
import-module sqlps
# Перейти в папку OLAP, в подкаталог с партициями
$startPath = "SQLSERVER:\sqlas\n01000039\DEFAULT\databases\OLAP\cubes\Cube\MeasureGroups"
cd $startPath 
#Получить коллекцию с измерениями OLAP-куба
$measures = gci
#Первый массив, который хранит пути к партициям
$arrPaths = @()
#Результирующий массив - Дата последнего процессинга, для каждой партиции
$arrRes = @()
#Заполнение первого массива
Foreach ($m in $measures)	{
	$arrPaths = $arrPaths + @(New-Object –TypeName PSObject -Property @{'path' = $startPath + "\" + $m.Name + "\Partitions"; 'measure' = $m.Name})
}
#Заполнение второго массива
Foreach ($i in $arrPaths)	{
	$curPartitions = gci $i.path | 
	foreach-object {$arrRes = $arrRes + @(New-Object –TypeName PSObject -Property @{'path' = $i.path; 'measure' = $i.measure; 'partitionName' = $_.Name;'lastProcessedDate' = $_.lastprocessed})} 
}
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40009595
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2

Почему PS ругается на cd?


Патаму, что ; надо использовать для разделения инструкций в одной строке.

Код: powershell
1.
; cd
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40010609
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222, Спасибо!
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40010623
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оффтрпик вообще, но мне все интересно, из какого тайнрго хранилища люди берут все эти древние артефакты Повершелл 7.1 уже вот-вот выйдет.
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40010654
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

сервера не так быстро меняются
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40010758
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
сервера не так быстро меняются

авторWhere can I install PowerShell?

PowerShell 7 currently supports the following operating systems on x64, including:

Windows 8.1, and 10
Windows Server 2012, 2012 R2, 2016, and 2019
macOS 10.13+
Red Hat Enterprise Linux (RHEL) / CentOS 7
Fedora 30+
Debian 9
Ubuntu LTS 16.04+
Alpine Linux 3.8+

Причем вообще может работать без установки, хоть с флешки.
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40010768
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Причем вообще может работать без установки, хоть с флешки.
"Может работать" и "разумно притащить эту фигню" - две совершенно разные вещи.
В целом, если "нечто" не входит в комплект обязательных обновлений, то в управляемой среде "оно" и не появится. И плевать, что по этому поводу думают программисты.
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40010771
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
fkthat
Причем вообще может работать без установки, хоть с флешки.
"Может работать" и "разумно притащить эту фигню" - две совершенно разные вещи.
В целом, если "нечто" не входит в комплект обязательных обновлений, то в управляемой среде "оно" и не появится. И плевать, что по этому поводу думают программисты.

Воля ваша. Если нравится возиться с костями мамонта, то пожалуйста :)
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40011340
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Оффтрпик вообще, но мне все интересно, из какого тайнрго хранилища люди берут все эти древние артефакты Повершелл 7.1 уже вот-вот выйдет.

А чаво там реально нового, окромя номера?
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40011352
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
А чаво там реально нового, окромя номера?

По сравнению с двойкой-то? Хотя бы то, что он, в отличие от двойки, поддерживается :))
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40011363
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
aleks222
А чаво там реально нового, окромя номера?

По сравнению с двойкой-то? Хотя бы то, что он, в отличие от двойки, поддерживается :))

"Поддерживается" чем?
Духом биллагейтса?

Страдалец, если тебе нечего сказать - помолчи. Сойдешь за умного.
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40011364
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222

"Поддерживается" чем?
Духом биллагейтса?

Разработчиками, балбес :))
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40011368
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
aleks222

"Поддерживается" чем?
Духом биллагейтса?

Разработчиками, балбес :))

Ты, страдалец, не способен использовать и 10% возможностей повершелл 2.0.
А туда же, к прогрессу тянешься немытыми лапками...
...
Рейтинг: 0 / 0
PowerShell 2.0 навигация внутри Foreach
    #40011371
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
не способен использовать и 10% возможностей повершелл 2.0.

Я в повершеле сижу половину рабочего времени, хоть и не админ, и у меня повершельный профиль в общей сложности (кастомные модули) почти две тысячи строк, т.ч. тут ты не угадал.

ЗЫ. На десктопе у тебя Win XP наверное? Сервис-паки хоть все стоят?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / PowerShell 2.0 навигация внутри Foreach
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]