2013-02-28 8 views
1

Я хочу выполнить итерацию по папкам внутри скриптов исправлений, найти каждый повторный результат DBChangesMain и ContentLbl и сохранить его в словаре или хеш-таблице, а затем распечатать результаты, как это сделать?Сохранение вывода в словаре

До сих пор я

$patchscripts = Get-Item "F:\folder\trunk\Source\Database\Patch Scripts" 

foreach ($folders in Get-childitem $patchscripts -recurse -include *.sql) 
{   
    if ($folders -like "*DBChangesMain*") 
    { 

    } 
    if ($folders -like "*ContentLbl*") 
    {  

    }  
} 

Write-Host $DbChanges 
Write-Host $contentlbl 

, если у вас есть лучший способ сделать это, пожалуйста, дайте мне знать, ура.

+0

Какими должны быть ваши ключи и значения в хеш-таблице здесь? – Joey

+0

Ключ будет DBChanges или contentlbl, и значение будет результатом итерации папки. Я не уверен, нужна ли мне таблица хэша, я даже мог бы хранить ее в массиве. Мне просто нужно хранить выходные данные рекурсивного действия в той же переменной. – Lewis

+0

Я хочу сохранить каждое возвращаемое значение, которое содержит DBchangesmain и contentlbl, в любой ту же переменную или две переменные, которые я могу ссылаться позже в моем сценарии powershell – Lewis

ответ

2

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

$patchscripts = 'F:\folder\trunk\Source\Database\Patch Scripts' 
$dbChangesMain = Get-ChildItem $patchScripts -Rec -Inc *DBChangesMain*.sql 
$contentLbl = Get-ChildItem $patchScripts -Rec -Inc *ContentLbl*.sql 

После этого вы просто есть два массива, содержащих имена подходящих файлов SQL.

+0

Я понял, что будет проще, спасибо. – Lewis

+1

Как правило, в PowerShell я советую людям держаться подальше от явных конструкций итераций, таких как 'for' или' foreach'. Зачастую существует более элегантное и читаемое решение, использующее трубопровод. В большинстве случаев я встречаю «foreach» от людей, которые приближаются к PowerShell, как если бы это был просто VBScript или C# с другим синтаксисом. – Joey

+0

Я сделал немного ov C#, так вот откуда я родом, но я учту это, powershell кажется большим до сих пор, глядя, как далеко я могу растянуть его. – Lewis

Смежные вопросы