
committed by
GitHub

1 changed files with 0 additions and 177 deletions
@ -1,177 +0,0 @@ |
|||||
<# |
|
||||
.SYNOPSIS |
|
||||
The TAB completion for functions and their arguments |
|
||||
|
|
||||
Version: v5.12.4 |
|
||||
Date: 05.10.2021 |
|
||||
|
|
||||
Copyright (c) 2014–2021 farag |
|
||||
Copyright (c) 2019–2021 farag & Inestic |
|
||||
|
|
||||
Thanks to all https://forum.ru-board.com members involved |
|
||||
|
|
||||
.DESCRIPTION |
|
||||
Dot source the script first: . .\Function.ps1 (with a dot at the beginning) |
|
||||
Start typing any characters contained in the function's name or its arguments, and press the TAB button |
|
||||
|
|
||||
.EXAMPLE |
|
||||
Sophia -Functions <tab> |
|
||||
Sophia -Functions temp<tab> |
|
||||
Sophia -Functions "DiagTrackService -Disable", "DiagnosticDataLevel -Minimal", UninstallUWPApps |
|
||||
|
|
||||
.NOTES |
|
||||
Set execution policy to be able to run scripts only in the current PowerShell session: |
|
||||
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force |
|
||||
|
|
||||
.NOTES |
|
||||
Separate functions with a comma |
|
||||
|
|
||||
.LINK |
|
||||
https://github.com/farag2/Sophia-Script-for-Windows |
|
||||
#> |
|
||||
|
|
||||
#Requires -RunAsAdministrator |
|
||||
#Requires -Version 5.1 |
|
||||
|
|
||||
function Sophia |
|
||||
{ |
|
||||
[CmdletBinding()] |
|
||||
param |
|
||||
( |
|
||||
[Parameter(Mandatory = $false)] |
|
||||
[string[]] |
|
||||
$Functions |
|
||||
) |
|
||||
|
|
||||
foreach ($Function in $Functions) |
|
||||
{ |
|
||||
Invoke-Expression -Command $Function |
|
||||
} |
|
||||
|
|
||||
# The "RefreshEnvironment" and "Errors" functions will be executed at the end |
|
||||
Invoke-Command -ScriptBlock {RefreshEnvironment; Errors} |
|
||||
} |
|
||||
|
|
||||
Clear-Host |
|
||||
|
|
||||
$Host.UI.RawUI.WindowTitle = "Sophia Script for Windows 10 v5.12.4 | Made with $([char]::ConvertFromUtf32(0x1F497)) of Windows | $([char]0x00A9) farag & Inestic, 2014–2021" |
|
||||
|
|
||||
Remove-Module -Name Sophia -Force -ErrorAction Ignore |
|
||||
Import-Module -Name $PSScriptRoot\Manifest\Sophia.psd1 -PassThru -Force |
|
||||
|
|
||||
Import-LocalizedData -BindingVariable Global:Localization -FileName Sophia -BaseDirectory $PSScriptRoot\Localizations |
|
||||
|
|
||||
# The mandatory checkings. Please, do not comment out this function |
|
||||
# Обязательные проверки. Пожалуйста, не комментируйте данную функцию |
|
||||
Checkings |
|
||||
|
|
||||
$Parameters = @{ |
|
||||
CommandName = "Sophia" |
|
||||
ParameterName = "Functions" |
|
||||
ScriptBlock = { |
|
||||
param |
|
||||
( |
|
||||
$commandName, |
|
||||
$parameterName, |
|
||||
$wordToComplete, |
|
||||
$commandAst, |
|
||||
$fakeBoundParameters |
|
||||
) |
|
||||
|
|
||||
# Get functions list with arguments to complete |
|
||||
$Commands = (Get-Module -Name Sophia).ExportedCommands.Keys |
|
||||
foreach ($Command in $Commands) |
|
||||
{ |
|
||||
$ParameterSets = (Get-Command -Name $Command).Parametersets.Parameters | Where-Object -FilterScript {$null -eq $_.Attributes.AliasNames} |
|
||||
|
|
||||
# If a module command is PinToStart |
|
||||
if ($Command -eq "PinToStart") |
|
||||
{ |
|
||||
# Get all command arguments, excluding defaults |
|
||||
foreach ($ParameterSet in $ParameterSets.Name) |
|
||||
{ |
|
||||
# If an argument is Tiles |
|
||||
if ($ParameterSet -eq "Tiles") |
|
||||
{ |
|
||||
$ValidValues = ((Get-Command -Name PinToStart).Parametersets.Parameters | Where-Object -FilterScript {$null -eq $_.Attributes.AliasNames}).Attributes.ValidValues |
|
||||
foreach ($ValidValue in $ValidValues) |
|
||||
{ |
|
||||
# The "PinToStart -Tiles <function>" construction |
|
||||
"PinToStart" + " " + "-" + $ParameterSet + " " + $ValidValue | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} | ForEach-Object -Process {"`"$_`""} |
|
||||
} |
|
||||
|
|
||||
# The "PinToStart -Tiles <functions>" construction |
|
||||
"PinToStart" + " " + "-" + $ParameterSet + " " + ($ValidValues -join ", ") | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} | ForEach-Object -Process {"`"$_`""} |
|
||||
} |
|
||||
|
|
||||
continue |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
# If a module command is UnpinTaskbarShortcuts |
|
||||
if ($Command -eq "UnpinTaskbarShortcuts") |
|
||||
{ |
|
||||
# Get all command arguments, excluding defaults |
|
||||
foreach ($ParameterSet in $ParameterSets.Name) |
|
||||
{ |
|
||||
# If an argument is Shortcuts |
|
||||
if ($ParameterSet -eq "Shortcuts") |
|
||||
{ |
|
||||
$ValidValues = ((Get-Command -Name UnpinTaskbarShortcuts).Parametersets.Parameters | Where-Object -FilterScript {$null -eq $_.Attributes.AliasNames}).Attributes.ValidValues |
|
||||
foreach ($ValidValue in $ValidValues) |
|
||||
{ |
|
||||
# The "UnpinTaskbarShortcuts -Shortcuts <function>" construction |
|
||||
"UnpinTaskbarShortcuts" + " " + "-" + $ParameterSet + " " + $ValidValue | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} | ForEach-Object -Process {"`"$_`""} |
|
||||
} |
|
||||
|
|
||||
# The "UnpinTaskbarShortcuts -Shortcuts <functions>" construction |
|
||||
"UnpinTaskbarShortcuts" + " " + "-" + $ParameterSet + " " + ($ValidValues -join ", ") | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} | ForEach-Object -Process {"`"$_`""} |
|
||||
} |
|
||||
|
|
||||
continue |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
# If a module command is UninstallUWPApps |
|
||||
if ($Command -eq "UninstallUWPApps") |
|
||||
{ |
|
||||
(Get-Command -Name $Command).Name | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} |
|
||||
|
|
||||
# Get all command arguments, excluding defaults |
|
||||
foreach ($ParameterSet in $ParameterSets.Name) |
|
||||
{ |
|
||||
# If an argument is ForAllUsers |
|
||||
if ($ParameterSet -eq "ForAllUsers") |
|
||||
{ |
|
||||
# The "UninstallUWPApps -ForAllUsers" construction |
|
||||
"UninstallUWPApps" + " " + "-" + $ParameterSet | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} | ForEach-Object -Process {"`"$_`""} |
|
||||
} |
|
||||
|
|
||||
continue |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
foreach ($ParameterSet in $ParameterSets.Name) |
|
||||
{ |
|
||||
# The "Function -Argument" construction |
|
||||
$Command + " " + "-" + $ParameterSet | Where-Object -FilterScript {$_ -like "*$wordToComplete*"} | ForEach-Object -Process {"`"$_`""} |
|
||||
|
|
||||
continue |
|
||||
} |
|
||||
|
|
||||
# Get functions list without arguments to complete |
|
||||
Get-Command -Name $Command | Where-Object -FilterScript {$null -eq $_.Parametersets.Parameters} | Where-Object -FilterScript {$_.Name -like "*$wordToComplete*"} |
|
||||
|
|
||||
continue |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
Register-ArgumentCompleter @Parameters |
|
||||
|
|
||||
Write-Information -MessageData "" -InformationAction Continue |
|
||||
Write-Verbose -Message "Sophia -Functions <tab>" -Verbose |
|
||||
Write-Verbose -Message "Sophia -Functions temp<tab>" -Verbose |
|
||||
Write-Verbose -Message "Sophia -Functions `"DiagTrackService -Disable`", `"DiagnosticDataLevel -Minimal`", UninstallUWPApps" -Verbose |
|
||||
Write-Information -MessageData "" -InformationAction Continue |
|
||||
Write-Verbose -Message "UninstallUWPApps, `"PinToStart -UnpinAll`"" -Verbose |
|
||||
Write-Verbose -Message "`"Set-Association -ProgramPath ```"%ProgramFiles%\Notepad++\notepad++.exe```" -Extension .txt -Icon ```"%ProgramFiles%\Notepad++\notepad++.exe,0```"`"" -Verbose |
|
Loading…
Reference in new issue