mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 09:41:36 +00:00
[PowerShell/en] execution-policy, builtin variables, configure your shell
This commit is contained in:
parent
083eb1c4a5
commit
4d44e241d7
@ -13,6 +13,22 @@ A key difference with Bash is that it is mostly objects that you manipulate rath
|
|||||||
|
|
||||||
[Read more here.](https://technet.microsoft.com/en-us/library/bb978526.aspx)
|
[Read more here.](https://technet.microsoft.com/en-us/library/bb978526.aspx)
|
||||||
|
|
||||||
|
If you are uncertain about your environment:
|
||||||
|
```powershell
|
||||||
|
Get-ExecutionPolicy -List
|
||||||
|
Set-ExecutionPolicy AllSigned
|
||||||
|
# Execution policies include:
|
||||||
|
# - Restricted: Scripts won't run.
|
||||||
|
# - RemoteSigned: Downloaded scripts run only if signed by a trusted publisher.
|
||||||
|
# - AllSigned: Scripts need to be signed by a trusted publisher.
|
||||||
|
# - Unrestricted: Run all scripts.
|
||||||
|
help about_Execution_Policies # for more info
|
||||||
|
|
||||||
|
# Current PowerShell version:
|
||||||
|
$PSVersionTable
|
||||||
|
```
|
||||||
|
|
||||||
|
The tutorial starts here:
|
||||||
```powershell
|
```powershell
|
||||||
# As you already figured, comments start with #
|
# As you already figured, comments start with #
|
||||||
|
|
||||||
@ -25,17 +41,18 @@ echo Hello world!
|
|||||||
echo 'This is the first line'; echo 'This is the second line'
|
echo 'This is the first line'; echo 'This is the second line'
|
||||||
|
|
||||||
# Declaring a variable looks like this:
|
# Declaring a variable looks like this:
|
||||||
$Variable="Some string"
|
$aString="Some string"
|
||||||
# Or like this:
|
# Or like this:
|
||||||
$Variable1 = "Another string"
|
$aNumber = 5
|
||||||
|
|
||||||
# Using the variable:
|
# Using the variable:
|
||||||
echo $Variable
|
echo $aString
|
||||||
echo "$Variable"
|
echo "Interpolation: $aString"
|
||||||
echo '$($Variable + '1')'
|
echo "`$aString has length of $($aString.length)"
|
||||||
|
echo '$aString'
|
||||||
echo @"
|
echo @"
|
||||||
This is a Here-String
|
This is a Here-String
|
||||||
$Variable
|
$aString
|
||||||
"@
|
"@
|
||||||
# Note that ' (single quote) won't expand the variables!
|
# Note that ' (single quote) won't expand the variables!
|
||||||
# Here-Strings also work with single quote
|
# Here-Strings also work with single quote
|
||||||
@ -45,12 +62,35 @@ $Variable
|
|||||||
echo "Booleans: $TRUE and $FALSE"
|
echo "Booleans: $TRUE and $FALSE"
|
||||||
echo "Empty value: $NULL"
|
echo "Empty value: $NULL"
|
||||||
echo "Last program's return value: $?"
|
echo "Last program's return value: $?"
|
||||||
|
echo "Exit code of last run Windows-based program: $LastExitCode"
|
||||||
|
echo "The last token in the last line received by the session: $$"
|
||||||
|
echo "The first token: $^"
|
||||||
echo "Script's PID: $PID"
|
echo "Script's PID: $PID"
|
||||||
echo "Number of arguments passed to script: $#"
|
echo "Full path of current script directory: $PSScriptRoot"
|
||||||
echo "All arguments passed to script: $Args"
|
echo 'Full path of current script: ' + $MyInvocation.MyCommand.Path
|
||||||
echo "Script's arguments separated into different variables: $1 $2..."
|
echo "FUll path of current directory: $Pwd"
|
||||||
|
echo "Bound arguments in a function, script or code block: $PSBoundParameters"
|
||||||
|
echo "Unbound arguments: $($Args -join ', ')." ######################## MOVE THIS TO FUNCTIONS
|
||||||
|
# More builtins: `help about_Automatic_Variables`
|
||||||
|
|
||||||
# Reading a value from input:
|
# Reading a value from input:
|
||||||
$Name = Read-Host "What's your name?"
|
$Name = Read-Host "What's your name?"
|
||||||
echo "Hello, $Name!"
|
echo "Hello, $Name!"
|
||||||
[int]$Age = Read-Host "What's your age?"
|
[int]$Age = Read-Host "What's your age?"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Configuring your shell
|
||||||
|
```powershell
|
||||||
|
# $Profile is the full path for your `Microsoft.PowerShell_profile.ps1`
|
||||||
|
# All code there will be executed when the PS session starts
|
||||||
|
if (-not (Test-Path $Profile)) {
|
||||||
|
New-Item -Type file -Path $Profile -Force
|
||||||
|
notepad $Profile
|
||||||
|
}
|
||||||
|
# More info: `help about_profiles`
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user