Powershell Profile配置

Powershell Profile配置

找到配置文件路径

1
echo $PROFILE

1.命令行代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Set-Proxy command
Function SetProxy() {
Param(
$Addr = $null,
[switch]$ApplyToSystem
)

$env:HTTP_PROXY = $Addr;
$env:HTTPS_PROXY = $Addr;
$env:http_proxy = $Addr;
$env:https_proxy = $Addr;

if ($addr -eq $null) {
[Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy;
if ($ApplyToSystem) { SetSystemProxy $null; }
Write-Output "Successful unset all proxy variable";
}
else {
[Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy $Addr;
if ($ApplyToSystem) {
$matchedResult = ValidHttpProxyFormat $Addr;
# Matched result: [URL Without Protocol][Input String]
if (-not ($matchedResult -eq $null)) {
SetSystemProxy $matchedResult.1;
}
}
Write-Output "Successful set proxy as $Addr";
}
}
Function SetSystemProxy($Addr = $null) {
Write-Output $Addr
$proxyReg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings";

if ($Addr -eq $null) {
Set-ItemProperty -Path $proxyReg -Name ProxyEnable -Value 0;
return;
}
Set-ItemProperty -Path $proxyReg -Name ProxyServer -Value $Addr;
Set-ItemProperty -Path $proxyReg -Name ProxyEnable -Value 1;
}
Function ValidHttpProxyFormat ($Addr) {
$regex = "(?:https?:\/\/)(\w+(?:.\w+)*(?::\d+)?)";
$result = $Addr -match $regex;
if ($result -eq $false) {
throw [System.ArgumentException]"The input $Addr is not a valid HTTP proxy URI.";
}

return $Matches;
}
Set-Alias set-proxy SetProxy

重新打开窗口

1
2
3
4
设置当前窗口代理 :`set-proxy 'http://your-proxy:port'`
设置当前窗口代理 + 系统代理:`set-proxy 'http://your-proxy:port' -ApplyToSystem`
取消当前窗口代理:`set-proxy` (没有参数)
取消当前窗口代理 + 系统代理:`set-proxy -ApplyToSystem`

2.刷新环境变量

1
2
3
4
5
Function RefushEnv() {
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
}

Set-Alias refush-env RefushEnv

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!