Δεν είναι δυνατή η τοποθέτηση λίστα των βάσεων δεδομένων πριν από την ενότητα επιλογής PowerShell

ψήφοι
0

Τρέχω αυτόν τον κώδικα

$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

και έχω πάρει το ακόλουθο αποτέλεσμα:

Επιλέξτε τον αριθμό της επιθυμητής βάσης δεδομένων προέλευσης: 1

Επιλέξατε βάση δεδομένων είναι 1 με κύριο όνομα

DBNumber DBNAME


1 master
2 ProdCopy1
3 ProdCopy2

Αλλά περιμένω ότι η έξοδος της λίστας των βάσεων δεδομένων θα εμφανιστεί ενώπιον του ζητηθεί να επιλέξετε την επιθυμητή βάση δεδομένων.

Δεν με πειράζει αν η λύση θα περιλαμβάνει την hashtable ή άλλο σχηματισμό δομής. Προσπάθησα χρησιμοποιώντας το 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) 

αλλά επέστρεψε Επιλέξτε τον αριθμό της βάσης δεδομένων προέλευσης: 1 Επιλέξατε βάση δεδομένων # 1 System.Collections.Hashtable.Item (1)

Θα μπορούσατε σας παρακαλώ να με βοηθήσει να τροποποιήσει τον κώδικα, έτσι ώστε ο κατάλογος των πινάκων εμφανίζονται πριν από την ενότητα επιλογής;

Δημοσιεύθηκε 07/11/2018 στις 23:53
πηγή χρήστη
Σε άλλες γλώσσες...                            

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