迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 PowerShell 中使用全局变量

作者:迹忆客 最近更新:2024/03/03 浏览次数:

变量是可以存储特定值以供以后处理或向用户显示其重要性的对象。Windows PowerShell 中有多种类型的变量。

我们将讨论 Windows PowerShell 全局变量并在 PowerShell 中实现它们。


PowerShell 全局变量简介

每个变量都有特定的范围。当我们在函数内部定义自定义变量时,它只能在该函数内部访问,而不能在外部访问。

示例代码:

function sampleFunction{
    $firstvar =35;
    Write-Host $firstvar;
}

Write-Output $firstvar

上面脚本的输出将是 null,因为这是 PowerShell 中任何变量的默认值。在这种情况下,我们应该使用全局变量,因为脚本、函数和命令可以跨会话访问它,从而在整个程序和其他方法中访问变量。


PowerShell 全局变量的好处

  1. 全局变量存储字符串、整数、数组、对象、哈希表等所有值。
  2. 全局变量可以包含不同对象的集合。
  3. 为每个全局变量分配特定数量的内存。
  4. 每个全局变量必须以美元符号 ($) 开头。
  5. 在程序开始时声明一个全局变量是编程的最佳实践。
  6. 如果我们不给你的变量赋值,默认值为 null。
  7. 全局变量的名称可以包含数字、字母和下划线 (_) 符号的组合。如果我们想使用其他特殊字符,请用大括号将变量的全名括起来。

声明 PowerShell 全局变量

要声明 PowerShell 全局变量,请使用以下语法。

示例代码:

$global: myVariable = "apple"

如果我们选择不提供任何值,你可以显式分配一个 $null 值。

示例代码:

$global: myVariable2 = $null

我们必须提到 $global 让 PowerShell 知道这个变量应该在整个程序中可用。

以下代码显示局部变量和全局变量共享相同的名称。因此,局部变量将在函数内部优先,但局部变量在函数外部没有值,因此脚本使用全局变量。

示例代码:

$global:num1 = 55;

function calculateAge{
    $num1 = 45;
    Write-Host $num1 "inside the function";
}

Write-Host $num1 "outside the function";
calculateAge;

输出:

45 inside the function
55 outside the function

在 PowerShell 中将全局变量作为参数传递

我们还可以将全局变量作为参数传递给函数,并在函数内部设置其值。但是,当然,你必须将全局变量作为 REF 对象。

示例代码:

$global:finalVariable = $null;

function addValue ($num1, $num2, [REF]$ans){
    $ans.Value = $num1 + $num2;
}

addValue 2 3 ([REF]$global:finalVariable);

Write-Host "The final value is:" $global:finalVariable;

输出:

The final value is: 5

在 PowerShell 中使用 Set-Variable 为全局变量设置值

将值设置为 Windows PowerShell 全局变量的最简单方法是使用 Set-Variable cmdlet。

示例代码:

Set-Variable -Name "finalVariable" -Value "6" -Scope Global
Get-Variable -Name "finalVariable"

输出:

Name                           Value
----                           -----
finalVariable                  6

该脚本将显示 6 的值。请注意,我们必须将变量的范围称为全局

Set-Variable 命令还带有一个可选参数,我们可以使用它来确定全局变量的性质。

示例代码:

Set-Variable -Name "finalVariable" -Value "6" -Scope Global -Option Read-Only

上面的代码将生成一个全局变量并为其设置一个值,但它将是一个只读全局变量。

示例代码:

Set-Variable -Name "finalVariable" -Value "6" -Scope Global -Option Constant

既然我们了解了全局变量,那么在你开始在程序中使用它们之前请注意。PowerShell 全局变量不适合生成变量或存储值,因为我们没有访问控制。

换句话说,很难跟踪全局变量的值,因为我们可以在程序中的任何地方更改它,并且测试它们非常困难,因为它们与代码紧密耦合。

这就是为什么有经验的程序员通常不使用全局变量的原因,因为它们可能会在大量程序中导致一些难以发现的错误。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Windows PowerShell 中获取命令行参数

发布时间:2024/03/04 浏览次数:358 分类:编程语言

本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。

Windows PowerShell 中的 Base64 编码

发布时间:2024/03/04 浏览次数:332 分类:编程语言

本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。

在 Windows PowerShell 中写入输出

发布时间:2024/03/04 浏览次数:259 分类:编程语言

本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。

在 PowerShell 中注释代码

发布时间:2024/03/04 浏览次数:363 分类:编程语言

本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便