Powershell: Difference between revisions
Jump to navigation
Jump to search
(→Syntax) |
(→IO) |
||
Line 230: | Line 230: | ||
# Read from a file |
# Read from a file |
||
$contents = Get-Content "file.txt" |
$contents = Get-Content "file.txt" |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
</source> |
</source> |
||
Line 245: | Line 238: | ||
Test-Path c:\foo # 'True' |
Test-Path c:\foo # 'True' |
||
Copy-Item -Path c:\foo -Destionation c:\bar |
Copy-Item -Path c:\foo -Destionation c:\bar |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
# Iterating on every files in $Path |
|||
ls $Path | foreach {$_.Name} |
|||
ls $Path | % {$_.Name} # same |
|||
# ... size filter |
|||
ls $Path | where {$_.Length -ge 2*1024} | % {$_.Name} |
|||
# ... same, using get-item |
|||
get-item $Path\* | where {$_.Length -ge 2*1024} | % {$_.Name} |
|||
Get-Item $Path # Get a file object |
|||
(Get-Item $Path).Parent # Get parent directory |
|||
(Get-Item $Path).Parent.FullName # ... get path only |
|||
(Get-Item $Path).Directory.Parent # ... if file |
|||
# ... These assumes $Path exists. If not, use Split-Path |
|||
</source> |
</source> |
||
Revision as of 17:42, 22 February 2022
Links
- Learn powershell in Y minutes — A MUST-READ to learn rapidly.
Reference
Files
Powershell scripts have a .ps1 extension.
Syntax
✐ | See learn Powershell in Y minutes for more! |
Primitive types / operators
Strings / arrays / dictionaries / ...
# Strings
$hello = "Hello"
$world = "World"
'Hello, World!' # No interpolation
"Hello, $world!" # 'Hello, World!'
"Hello, World!".Length # Length
"{0}, {1}!" -f $hello, $world # f-string
"$world is $($world.length) char long"
'Hello, World!'[0] # 'H'
'Hello, World!'[0..5] # 'H', 'e', 'l', 'l', 'o'
'Hello, World!'.Substring(0,5 # 'Hello'
'Hello, ' + 'World!' # 'Hello, World!'
'First line`nSecond line' # Escape with backtick
"foo" | gm # Get all methods / properties
# Arrays
# TBC
# Dictionaries
# TBC
Control flow
IO
Functions
Exec
Miscellaneous
Tips
Measure execution time of a command
Measure-Command { dir }
Measure-Command { dir | Out-default} # To get output
Measure-Command { choco list }
Update help on offline computers
From MS devblogs:
<source lang="powershell">
- On online computer
New-Item c:\tmp\help Save-Help -DestinationPath c:\tmp\help -Module * -Force
- On offline computer
- ... transfer files to c:\tmp\help
- ... start powershell in admin (Win-X-A)
Update-Help -SourcePath c:\tmp\help -Module * -Force </source