====== Powershell Configuration ======
List environment variables
gci env:
To get $path variable
$env:path
To edit Powershell profile
notepad $PROFILE
Dot (.) source to reload $PROFILE into current sessions, just like Bash
. $profile
Get path to command history file
(Get-PSReadlineOption).HistorySavePath
=== Reference Config ===
$env:Path += ";c:\od\scripts"
$od = "$home\OneDrive"
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme mg
$host.PrivateData.ErrorForegroundColor = 'Cyan'
$host.PrivateData.ErrorBackgroundColor = 'Black'
set-alias exp explorer.exe
set-alias gs git-save
set-alias gd git-dump
set-alias mgi c:\od\scripts\git-init.ps1
set-alias npp notepad++.exe
Set-PSReadLineOption -HistoryNoDuplicates
function npw() {
param(
[Parameter(Position=0)]
$folder
)
Start-Process notepad++.exe -ArgumentList "-openFoldersAsWorkspace $folder"
}
function h2 {
notepad (Get-PSReadLineOption | select -ExpandProperty HistorySavePath)
}
function h3 {
code -n (Get-PSReadLineOption | select -ExpandProperty HistorySavePath)
}
function hp {
Get-History |
Out-GridView -Title "Press CTRL, select multiple and Hit OK" -OutputMode Multiple |
ForEach-Object {
Write-Output "PS> $($_.CommandLine)"
Invoke-Expression $($_.CommandLine)
}
}
function hpp {
Start-Process notepad++.exe (Get-PSReadlineOption).HistorySavePath
}
function git-dump([Parameter(Mandatory=$true)][string]$commit, [Parameter(Mandatory=$true)][string]$path) {
$temp_file="c:\tmp\git-dump.zip"; git archive -o $temp_file $commit; Expand-Archive -path $temp_file -destinationpath $path
}
function git-save {
git add .; git commit
}
function mgl {
git log
}
function git-ls($commit) {
git ls-tree --name-only -r $commit
}
function git-show($commit) {
git show --name-only $commit
}