powershell:qnd:powershell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
powershell:qnd:powershell [2022/12/28 16:42] – [Command Line] mguptonpowershell:qnd:powershell [2024/10/24 14:24] (current) – [Select Objects] mgupton
Line 25: Line 25:
   * [[https://stackoverflow.com/questions/71174012/how-do-you-edit-the-command-line-in-an-external-editor|Editing commands in external editor of choice]]   * [[https://stackoverflow.com/questions/71174012/how-do-you-edit-the-command-line-in-an-external-editor|Editing commands in external editor of choice]]
  
 +Example of setting VS Code as the editor used for command line editing
 +<code powershell>
 +'@code --new-window --wait %*' > "$HOME\codewait.cmd"
 +
 +$env:VISUAL = "$HOME/codewait"
 +
 +# Custom key binding
 +Set-PSReadLineKeyHandler -Chord Alt+e -Function ViEditVisually
 +</code>
  
-===== Data Types =====+====== Data Types ======
   * Use ''$var.GetType()'' to get data type of variable   * Use ''$var.GetType()'' to get data type of variable
   * [[https://docs.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-hashtable|hashtables]]   * [[https://docs.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-hashtable|hashtables]]
Line 41: Line 50:
 </code> </code>
  
 +<code powershell>
 +$foo = @(
 +       "alpha"
 +       "beta"
 +       "gamma"
 +       )
 +</code>
 ==== hash table ==== ==== hash table ====
 <code powershell> <code powershell>
Line 54: Line 70:
   * If a variable name contains spaces it needs to be wrapped in quotes (e.g. ''$obj."First Name"'' or ''{}''. This might happen with imported CSV data, for example.   * If a variable name contains spaces it needs to be wrapped in quotes (e.g. ''$obj."First Name"'' or ''{}''. This might happen with imported CSV data, for example.
  
-===== Loops/Iteration ===== +====== Control Structures ====== 
 +====== Loops/Iteration ====== 
 +==== For Loop ====
 <code powershell> <code powershell>
 $fruit = @('apple','pear','banana','lemon','lime','mango') $fruit = @('apple','pear','banana','lemon','lime','mango')
Line 61: Line 78:
 For ($i = 0; $i -le $fruit.length; $i++) { For ($i = 0; $i -le $fruit.length; $i++) {
     Write-Host $fruit[$i];         Write-Host $fruit[$i];    
 +}
 +</code>
 +
 +==== Foreach Loop ====
 +
 +<code powershell>
 +foreach ($file in Get-ChildItem) {
 +  # do something with $file
 } }
 </code> </code>
Line 72: Line 97:
  
 ==== Hash Table ==== ==== Hash Table ====
-  * To loop over the items in a hash table you have to call ''GetEnumerator()'' on the hash table.+  * To loop over the items in a hash table one option is to call ''GetEnumerator()'' on the hash table. 
 + 
 +<code powershell> 
 +$t1 = @{firstname = "Michael"; lastname = "Muse"
 + 
 +foreach ($i in $t1.GetEnumerator()) { 
 +    $i.value 
 +
 +</code> 
 + 
 +=== Alternatively use the keys === 
 + 
 +<code powershell> 
 +$t1 = @{firstname = "Michael"; lastname = "Muse"
 + 
 +foreach ($i in $t1.keys) { 
 +    $t1[$i] 
 +
 +</code>
  
 ====== Select-String ====== ====== Select-String ======
Line 88: Line 131:
 Example of getting just the first item of the listed output Example of getting just the first item of the listed output
 <code powershell> <code powershell>
-ls | select first 1+ls | select -first 1
 </code> </code>
  
  • powershell/qnd/powershell.1672245758.txt.gz
  • Last modified: 2022/12/28 16:42
  • by mgupton