Nelze seznam databází umístit před sekci výběru v PowerShell

hlasů
0

Vedu tento kód

$qry = select * from sys.databases
$potentialSourceDatabases = @(Invoke-Sqlcmd -ServerInstance $azureSQLServerDNS `
 -Database $azureDatabase -Username $SQLUsername -Password $SQLPassword `
 -Query $qry -QueryTimeout 1200) | select-object -expand Name

$potentialSourceDatabasesTable = @()
$databaseCounter = 1

foreach ($item in $potentialSourceDatabases){
    $itemProperties = @{
        DBNumber = $databaseCounter++
        DBName = $item
    }
    $potentialSourceDatabasesTable += New-Object -TypeName PsObject -Property $itemProperties
}

$potentialSourceDatabasesTable

$sourceDatabaseNumber = Read-Host -Prompt 'Please select the number of the desired source database'
$output = $potentialSourceDatabasesTable | Where-Object{$_.DBNumber -eq $sourceDatabaseNumber}  | select-object -expand DBName
Write-Host You selected database is $sourceDatabaseNumber with name $output

a já začínám následující výstup:

Prosím, vyberte číslo požadované zdrojové databáze: 1

Vybrali jste databázi je 1 s mistrem jméno

DBNumber DBName


1 hlavní
2 ProdCopy1
3 ProdCopy2

Ale předpokládám, že výstup ze seznamu databází se objeví před tím, než výzva pro výběr požadované databáze.

Nevadí mi, že v případě, že řešení bude zahrnovat Hashtable nebo jinou tvorbu struktury. Snažil jsem se pomocí hastable:

$hashTable = @{}
$counter = 1

foreach ($item in $potentialSourceDatabases)
{
    $hashTable.Add($counter++,$item)
}
$getDatabaseNumber = Read-Host -Prompt 'Select source database number'
Write-Host You selected database #$getDatabaseNumber $hashTable.Item($getDatabaseNumber) 

ale to se vrátilo Vyberte počet source databáze: 1 Zvolili jste databáze # 1 System.Collections.Hashtable.Item (1)

Mohl byste prosím, pomoz mi, aby upravit kód tak, aby se seznam tabulek se objeví před sekci výběru?

Položena 07/11/2018 v 23:53
zdroj uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more