Hash table that includes SQL Server name, SQL port, and SQL instanceHow to run a PowerShell scriptHow do I get only directories using Get-ChildItem?Executing an EXE file using a PowerShell scriptWhich snapins do I need to run sql server powershell?Cannot run Invoke-Sqlcmd in a PS1 file but can on the consoleTrouble connecting to localdb via SQLCMD in PowerShell - what is server instance name?Error passing variable SQL instance name into Invoke-SQLcmdPowershell T-SQL Update Statement Error in FunctionSQL Powershell Error: Invoke-Sqlcmd : The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdletPowershell Script import csv on a SQL Server
Is it acceptable for a professor to tell male students to not think that they are smarter than female students?
Why didn't Miles's spider sense work before?
How dangerous is XSS?
Plagiarism or not?
In 'Revenger,' what does 'cove' come from?
Venezuelan girlfriend wants to travel the USA to be with me. What is the process?
Can we compute the area of a quadrilateral with one right angle when we only know the lengths of any three sides?
How would I stat a creature to be immune to everything but the Magic Missile spell? (just for fun)
Little known, relatively unlikely, but scientifically plausible, apocalyptic (or near apocalyptic) events
Im going to France and my passport expires June 19th
ssTTsSTtRrriinInnnnNNNIiinngg
How do I deal with an unproductive colleague in a small company?
Detention in 1997
Is there a hemisphere-neutral way of specifying a season?
Why was the shrinking from 8″ made only to 5.25″ and not smaller (4″ or less)?
I would say: "You are another teacher", but she is a woman and I am a man
Can a virus destroy the BIOS of a modern computer?
How to compactly explain secondary and tertiary characters without resorting to stereotypes?
Reverse dictionary where values are lists
Why is consensus so controversial in Britain?
What method can I use to design a dungeon difficult enough that the PCs can't make it through without killing them?
How to Recreate this in LaTeX? (Unsure What the Notation is Called)
How do conventional missiles fly?
What about the virus in 12 Monkeys?
Hash table that includes SQL Server name, SQL port, and SQL instance
How to run a PowerShell scriptHow do I get only directories using Get-ChildItem?Executing an EXE file using a PowerShell scriptWhich snapins do I need to run sql server powershell?Cannot run Invoke-Sqlcmd in a PS1 file but can on the consoleTrouble connecting to localdb via SQLCMD in PowerShell - what is server instance name?Error passing variable SQL instance name into Invoke-SQLcmdPowershell T-SQL Update Statement Error in FunctionSQL Powershell Error: Invoke-Sqlcmd : The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdletPowershell Script import csv on a SQL Server
I'm running a lot of invoke-sqlcmd
commands, all with a different server name, different port, and a different instance.
From what I've read a hash table is the way to go
- Can a hash table be a separate file?
- How do I create a table that includes server name, port number, and instance?
- How do I incorporate that into the script?
powershell
add a comment |
I'm running a lot of invoke-sqlcmd
commands, all with a different server name, different port, and a different instance.
From what I've read a hash table is the way to go
- Can a hash table be a separate file?
- How do I create a table that includes server name, port number, and instance?
- How do I incorporate that into the script?
powershell
i would use an array/arraylist/generic.list as appropriate ... and put custom objects into that. then you can simply iterate thru the collection.
– Lee_Dailey
Mar 8 at 22:45
Can you provide an example?
– user770022
Mar 8 at 22:46
if you have a CSV file with the info in it, you can useImport-CSV
and get a collection of objects. the header will be the property names, and the other rows will be the objects with each column a property of that object. that lets you use$Item.ComputerName
to get the computer name,$Item.Port
to get hte port info, etc. ///// plus, you can easily create/save/load/edit those items. ///// take a look atGet-Help Import-Csv -Examples
for some nifty examples. [grin]
– Lee_Dailey
Mar 8 at 23:01
add a comment |
I'm running a lot of invoke-sqlcmd
commands, all with a different server name, different port, and a different instance.
From what I've read a hash table is the way to go
- Can a hash table be a separate file?
- How do I create a table that includes server name, port number, and instance?
- How do I incorporate that into the script?
powershell
I'm running a lot of invoke-sqlcmd
commands, all with a different server name, different port, and a different instance.
From what I've read a hash table is the way to go
- Can a hash table be a separate file?
- How do I create a table that includes server name, port number, and instance?
- How do I incorporate that into the script?
powershell
powershell
edited Mar 9 at 7:09
marc_s
584k13011241270
584k13011241270
asked Mar 8 at 22:37
user770022user770022
1,182133757
1,182133757
i would use an array/arraylist/generic.list as appropriate ... and put custom objects into that. then you can simply iterate thru the collection.
– Lee_Dailey
Mar 8 at 22:45
Can you provide an example?
– user770022
Mar 8 at 22:46
if you have a CSV file with the info in it, you can useImport-CSV
and get a collection of objects. the header will be the property names, and the other rows will be the objects with each column a property of that object. that lets you use$Item.ComputerName
to get the computer name,$Item.Port
to get hte port info, etc. ///// plus, you can easily create/save/load/edit those items. ///// take a look atGet-Help Import-Csv -Examples
for some nifty examples. [grin]
– Lee_Dailey
Mar 8 at 23:01
add a comment |
i would use an array/arraylist/generic.list as appropriate ... and put custom objects into that. then you can simply iterate thru the collection.
– Lee_Dailey
Mar 8 at 22:45
Can you provide an example?
– user770022
Mar 8 at 22:46
if you have a CSV file with the info in it, you can useImport-CSV
and get a collection of objects. the header will be the property names, and the other rows will be the objects with each column a property of that object. that lets you use$Item.ComputerName
to get the computer name,$Item.Port
to get hte port info, etc. ///// plus, you can easily create/save/load/edit those items. ///// take a look atGet-Help Import-Csv -Examples
for some nifty examples. [grin]
– Lee_Dailey
Mar 8 at 23:01
i would use an array/arraylist/generic.list as appropriate ... and put custom objects into that. then you can simply iterate thru the collection.
– Lee_Dailey
Mar 8 at 22:45
i would use an array/arraylist/generic.list as appropriate ... and put custom objects into that. then you can simply iterate thru the collection.
– Lee_Dailey
Mar 8 at 22:45
Can you provide an example?
– user770022
Mar 8 at 22:46
Can you provide an example?
– user770022
Mar 8 at 22:46
if you have a CSV file with the info in it, you can use
Import-CSV
and get a collection of objects. the header will be the property names, and the other rows will be the objects with each column a property of that object. that lets you use $Item.ComputerName
to get the computer name, $Item.Port
to get hte port info, etc. ///// plus, you can easily create/save/load/edit those items. ///// take a look at Get-Help Import-Csv -Examples
for some nifty examples. [grin]– Lee_Dailey
Mar 8 at 23:01
if you have a CSV file with the info in it, you can use
Import-CSV
and get a collection of objects. the header will be the property names, and the other rows will be the objects with each column a property of that object. that lets you use $Item.ComputerName
to get the computer name, $Item.Port
to get hte port info, etc. ///// plus, you can easily create/save/load/edit those items. ///// take a look at Get-Help Import-Csv -Examples
for some nifty examples. [grin]– Lee_Dailey
Mar 8 at 23:01
add a comment |
1 Answer
1
active
oldest
votes
A PS Custom object is well-suited for containing your data. Consider
$o = [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
Now the $o
object contains NoteProperty
members that contain data. Accessing is simple enough:
$o.server+$o.instance+','+$o.port
Server1dev,50000
Hashtables in Powershell are created with built-in syntax: $myHashTable = @
.
A quick demo how to work with hash tables is in order. Let's populate a list of aforementioned custom objects first. Like so,
# Empty array
$l = @()
# Add some servers
$l += [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
$l += [PSCustomObject]@
'Name' = 'test'
'Server' = 'Server1'
'Instance' = 'test'
'Port' = '50001'
$l += [PSCustomObject]@
'Name' = 'qa'
'Server' = 'Server1'
'Instance' = 'qa'
'Port' = '50002'
$l += [PSCustomObject]@
'Name' = 'prod'
'Server' = 'Server2'
'Instance' = 'prod'
'Port' = '50000'
Now there's a list of server objects, but it's hard to access a specific one. Server's index in the list must be known, or the list otherwise searched.
Consider a hash table: its contents can be retrieved based on a key. Let's use Name
property as the key and add the servers into a hash table:
# Empty hashtable
$ht = @
# Iterate server list and add each PSObject into the hasthtable
$l | % $ht.add($_.name, $_ )
# Print results
$ht
Name Value
---- -----
qa @Name=qa; Server=Server1; Instance=qa; Port=50002
dev @Name=dev; Server=Server1; Instance=dev; Port=50000
prod @Name=prod; Server=Server2; Instance=prod; Port=50000
test @Name=test; Server=Server1; Instance=test; Port=50001
#Access the prod server object
$ht.prod
Name Server Instance Port
---- ------ -------- ----
prod Server2 prod 50000
# Get production's port
$ht.prod.port
50000
# Generate a connection string to prod
"Server=0,1" -f $($ht.prod.server+$ht.prod.instance), $ht.prod.port
Server=Server2prod,50000
As for how to use file-based hashtable, look up Export-Clixml
and Import-Clixml
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55071966%2fhash-table-that-includes-sql-server-name-sql-port-and-sql-instance%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
A PS Custom object is well-suited for containing your data. Consider
$o = [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
Now the $o
object contains NoteProperty
members that contain data. Accessing is simple enough:
$o.server+$o.instance+','+$o.port
Server1dev,50000
Hashtables in Powershell are created with built-in syntax: $myHashTable = @
.
A quick demo how to work with hash tables is in order. Let's populate a list of aforementioned custom objects first. Like so,
# Empty array
$l = @()
# Add some servers
$l += [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
$l += [PSCustomObject]@
'Name' = 'test'
'Server' = 'Server1'
'Instance' = 'test'
'Port' = '50001'
$l += [PSCustomObject]@
'Name' = 'qa'
'Server' = 'Server1'
'Instance' = 'qa'
'Port' = '50002'
$l += [PSCustomObject]@
'Name' = 'prod'
'Server' = 'Server2'
'Instance' = 'prod'
'Port' = '50000'
Now there's a list of server objects, but it's hard to access a specific one. Server's index in the list must be known, or the list otherwise searched.
Consider a hash table: its contents can be retrieved based on a key. Let's use Name
property as the key and add the servers into a hash table:
# Empty hashtable
$ht = @
# Iterate server list and add each PSObject into the hasthtable
$l | % $ht.add($_.name, $_ )
# Print results
$ht
Name Value
---- -----
qa @Name=qa; Server=Server1; Instance=qa; Port=50002
dev @Name=dev; Server=Server1; Instance=dev; Port=50000
prod @Name=prod; Server=Server2; Instance=prod; Port=50000
test @Name=test; Server=Server1; Instance=test; Port=50001
#Access the prod server object
$ht.prod
Name Server Instance Port
---- ------ -------- ----
prod Server2 prod 50000
# Get production's port
$ht.prod.port
50000
# Generate a connection string to prod
"Server=0,1" -f $($ht.prod.server+$ht.prod.instance), $ht.prod.port
Server=Server2prod,50000
As for how to use file-based hashtable, look up Export-Clixml
and Import-Clixml
.
add a comment |
A PS Custom object is well-suited for containing your data. Consider
$o = [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
Now the $o
object contains NoteProperty
members that contain data. Accessing is simple enough:
$o.server+$o.instance+','+$o.port
Server1dev,50000
Hashtables in Powershell are created with built-in syntax: $myHashTable = @
.
A quick demo how to work with hash tables is in order. Let's populate a list of aforementioned custom objects first. Like so,
# Empty array
$l = @()
# Add some servers
$l += [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
$l += [PSCustomObject]@
'Name' = 'test'
'Server' = 'Server1'
'Instance' = 'test'
'Port' = '50001'
$l += [PSCustomObject]@
'Name' = 'qa'
'Server' = 'Server1'
'Instance' = 'qa'
'Port' = '50002'
$l += [PSCustomObject]@
'Name' = 'prod'
'Server' = 'Server2'
'Instance' = 'prod'
'Port' = '50000'
Now there's a list of server objects, but it's hard to access a specific one. Server's index in the list must be known, or the list otherwise searched.
Consider a hash table: its contents can be retrieved based on a key. Let's use Name
property as the key and add the servers into a hash table:
# Empty hashtable
$ht = @
# Iterate server list and add each PSObject into the hasthtable
$l | % $ht.add($_.name, $_ )
# Print results
$ht
Name Value
---- -----
qa @Name=qa; Server=Server1; Instance=qa; Port=50002
dev @Name=dev; Server=Server1; Instance=dev; Port=50000
prod @Name=prod; Server=Server2; Instance=prod; Port=50000
test @Name=test; Server=Server1; Instance=test; Port=50001
#Access the prod server object
$ht.prod
Name Server Instance Port
---- ------ -------- ----
prod Server2 prod 50000
# Get production's port
$ht.prod.port
50000
# Generate a connection string to prod
"Server=0,1" -f $($ht.prod.server+$ht.prod.instance), $ht.prod.port
Server=Server2prod,50000
As for how to use file-based hashtable, look up Export-Clixml
and Import-Clixml
.
add a comment |
A PS Custom object is well-suited for containing your data. Consider
$o = [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
Now the $o
object contains NoteProperty
members that contain data. Accessing is simple enough:
$o.server+$o.instance+','+$o.port
Server1dev,50000
Hashtables in Powershell are created with built-in syntax: $myHashTable = @
.
A quick demo how to work with hash tables is in order. Let's populate a list of aforementioned custom objects first. Like so,
# Empty array
$l = @()
# Add some servers
$l += [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
$l += [PSCustomObject]@
'Name' = 'test'
'Server' = 'Server1'
'Instance' = 'test'
'Port' = '50001'
$l += [PSCustomObject]@
'Name' = 'qa'
'Server' = 'Server1'
'Instance' = 'qa'
'Port' = '50002'
$l += [PSCustomObject]@
'Name' = 'prod'
'Server' = 'Server2'
'Instance' = 'prod'
'Port' = '50000'
Now there's a list of server objects, but it's hard to access a specific one. Server's index in the list must be known, or the list otherwise searched.
Consider a hash table: its contents can be retrieved based on a key. Let's use Name
property as the key and add the servers into a hash table:
# Empty hashtable
$ht = @
# Iterate server list and add each PSObject into the hasthtable
$l | % $ht.add($_.name, $_ )
# Print results
$ht
Name Value
---- -----
qa @Name=qa; Server=Server1; Instance=qa; Port=50002
dev @Name=dev; Server=Server1; Instance=dev; Port=50000
prod @Name=prod; Server=Server2; Instance=prod; Port=50000
test @Name=test; Server=Server1; Instance=test; Port=50001
#Access the prod server object
$ht.prod
Name Server Instance Port
---- ------ -------- ----
prod Server2 prod 50000
# Get production's port
$ht.prod.port
50000
# Generate a connection string to prod
"Server=0,1" -f $($ht.prod.server+$ht.prod.instance), $ht.prod.port
Server=Server2prod,50000
As for how to use file-based hashtable, look up Export-Clixml
and Import-Clixml
.
A PS Custom object is well-suited for containing your data. Consider
$o = [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
Now the $o
object contains NoteProperty
members that contain data. Accessing is simple enough:
$o.server+$o.instance+','+$o.port
Server1dev,50000
Hashtables in Powershell are created with built-in syntax: $myHashTable = @
.
A quick demo how to work with hash tables is in order. Let's populate a list of aforementioned custom objects first. Like so,
# Empty array
$l = @()
# Add some servers
$l += [PSCustomObject]@
'Name' = 'dev'
'Server' = 'Server1'
'Instance' = 'dev'
'Port' = '50000'
$l += [PSCustomObject]@
'Name' = 'test'
'Server' = 'Server1'
'Instance' = 'test'
'Port' = '50001'
$l += [PSCustomObject]@
'Name' = 'qa'
'Server' = 'Server1'
'Instance' = 'qa'
'Port' = '50002'
$l += [PSCustomObject]@
'Name' = 'prod'
'Server' = 'Server2'
'Instance' = 'prod'
'Port' = '50000'
Now there's a list of server objects, but it's hard to access a specific one. Server's index in the list must be known, or the list otherwise searched.
Consider a hash table: its contents can be retrieved based on a key. Let's use Name
property as the key and add the servers into a hash table:
# Empty hashtable
$ht = @
# Iterate server list and add each PSObject into the hasthtable
$l | % $ht.add($_.name, $_ )
# Print results
$ht
Name Value
---- -----
qa @Name=qa; Server=Server1; Instance=qa; Port=50002
dev @Name=dev; Server=Server1; Instance=dev; Port=50000
prod @Name=prod; Server=Server2; Instance=prod; Port=50000
test @Name=test; Server=Server1; Instance=test; Port=50001
#Access the prod server object
$ht.prod
Name Server Instance Port
---- ------ -------- ----
prod Server2 prod 50000
# Get production's port
$ht.prod.port
50000
# Generate a connection string to prod
"Server=0,1" -f $($ht.prod.server+$ht.prod.instance), $ht.prod.port
Server=Server2prod,50000
As for how to use file-based hashtable, look up Export-Clixml
and Import-Clixml
.
answered Mar 9 at 6:40
vonPryzvonPryz
13k23744
13k23744
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55071966%2fhash-table-that-includes-sql-server-name-sql-port-and-sql-instance%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
i would use an array/arraylist/generic.list as appropriate ... and put custom objects into that. then you can simply iterate thru the collection.
– Lee_Dailey
Mar 8 at 22:45
Can you provide an example?
– user770022
Mar 8 at 22:46
if you have a CSV file with the info in it, you can use
Import-CSV
and get a collection of objects. the header will be the property names, and the other rows will be the objects with each column a property of that object. that lets you use$Item.ComputerName
to get the computer name,$Item.Port
to get hte port info, etc. ///// plus, you can easily create/save/load/edit those items. ///// take a look atGet-Help Import-Csv -Examples
for some nifty examples. [grin]– Lee_Dailey
Mar 8 at 23:01