概述

Windows PowerShell 是一种命令行脚本语言和脚本环境,它是 Windows 系统中的一个强大工具,可以帮助用户更高效地管理和操作系统。在 PowerShell 中,我们可以通过定义和调用函数来实现代码的复用和模块化。

本文将介绍如何在 PowerShell 中定义和调用函数。

需求说明

在使用Git时,在 PowerShell 中定义一个函数,实现对Git的http代理进行便捷的设置和取消。

注意:该代理为http代理,而非ssh代理。

实现步骤

定义函数

在 PowerShell 中,我们可以通过 function 关键字来定义函数,函数的基本语法如下:

1
2
3
function 函数名 {
# 函数体
}

下面是一个设置和取消 Git 代理的函数的示例,请注意端口按需修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function gitProxy {
param([string]$status)
switch ($status) {
"on" {
git config --global http.proxy 'http://127.0.0.1:7890'
Write-Host "Git proxy has been turned ON."
}
"off" {
git config --global --unset http.proxy
Write-Host "Git proxy has been turned OFF."
}
default {
Write-Host "Use 'on' to turn on the proxy or 'off' to turn off the proxy."
}
}
}

在上面的代码中,我们定义了一个名为 gitProxy 的函数,该函数接受一个参数 $status,根据参数的值来设置或取消 Git 代理。

我们只需要将上面的代码粘贴到 PowerShell 中并回车,就可以定义一个名为 gitProxy 的函数。

调用函数

定义好函数之后,我们可以通过函数名来调用函数,传入参数来执行函数的逻辑。

1
gitProxy on

上面的代码调用了 gitProxy 函数,并传入了参数 on,表示要设置 Git 代理。

此时,我们可以查看 Git 的配置列表,可以看到 Git 代理已经被设置。

1
git config --global --list

代理设置成功.PNG

1
gitProxy off

上面的代码调用了 gitProxy 函数,并传入了参数 off,表示要取消 Git 代理。

持久化函数

上面的函数是临时定义的,只在当前 PowerShell 会话中有效。如果我们希望函数在每次启动 PowerShell 时都能使用,可以将函数定义保存到 PowerShell 配置文件中。

注意:以下命令需要使用管理员权限启动PowerShell,由于该命令属于常用命项,依据Windows官方建议,将函数保存到$PROFILE.AllUsersAllHosts配置文件中。

检查配置文件是否存在,如果不存在则创建配置文件:

1
if (!(Test-Path -Path $PROFILE.AllUsersAllHosts)) { New-Item -Type File -Path $PROFILE.AllUsersAllHosts -Force }

打开并编辑配置文件:

1
notepad $USERPROFILE.AllUsersAllHosts

在打开的配置文件中,我们可以将前面函数粘贴到文件末尾,保存并关闭文件。

关闭并重新打开新的 PowerShell 窗口,我们就可以直接调用 gitProxy 函数了。

总结

本文介绍了如何在 PowerShell 中通过 function 关键字定义函数,并通过函数名调用函数。同时介绍了如何将函数保存到 PowerShell 配置文件中,以便在每次启动 PowerShell 时都能使用。