迹忆客 专注技术分享

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

在 PowerShell 中使用 @ 符号

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

你可能已经看到 PowerShell 中使用的不同符号,例如 @?|$%=。所有这些符号在命令中都有它们的用途。

本教程将向你展示@符号在 PowerShell 中的各种用法。


在 PowerShell 中使用 @ 符号创建数组

数组子表达式运算符 @() 在 PowerShell 中创建并初始化一个数组。

$array = @('Apple', 'Banana', 'Mango')
$array

输出:

Apple
Banana
Mango

你可以使用 GetType 方法来获取变量的数据类型。

$array.GetType()

输出:

IsPublic  IsSerial  Name                                     BaseType
--------  --------  ----                                     --------
True      True      Object[]                                 System.Array

你可以使用此运算符创建一个数组零个或一个对象。如果括号中没有提供任何值,它将创建一个空数组。

$data = @()

在 PowerShell 中使用 @ 符号创建哈希表

哈希表是一种紧凑的数据结构,它存储一个或多个成对的键和值。它也称为字典或关联数组。

在 PowerShell 中创建哈希表的语法以 @ 符号开头。键和值包含在 {} 括号中。

下面的示例创建一个包含三个键和值的哈希表。

$hash = @{Name = "Sam"; Age = 21; Address = "Nepal"}
$hash

输出:

Name                           Value
----                           -----
Name                           Sam
Age                            21
Address                        Nepal

你可以使用 GetType() 方法检查数据类型。

$hash.GetType()

输出:

IsPublic  IsSerial  Name                                     BaseType
--------  --------  ----                                     --------
True      True      Hashtable                                System.Object

如果括号中没有提供键和值,将创建一个空的哈希表。

$hash = @{}

在 PowerShell 中为 Here-Strings 使用 @ 符号

@ 符号的另一个重要用途是在 PowerShell 中定义此处的字符串。引号在此处字符串中按字面意思解释。

此处字符串可以是单引号或双引号字符串,每端都有@。它可以有多行文本。

Here-string 带双引号:

@"
Press "Enter" to continue...
Press "X" to quit.
"@

输出:

Press "Enter" to continue...
Press "X" to quit.

此处字符串包含@" "@ 之间的所有文本。

Here-带单引号的字符串:

@'
My name is $name.
'@

输出:

My name is $name.

在单引号 here-strings 中,变量按字面意思解释并打印在输出中,但不是在双引号 here-strings 中。


在 PowerShell 中使用@符号对数组进行拼接

你可以在命令中使用@符号对数组进行拼接。 @ 符号可以使用数组来显示不需要参数名称的位置参数的值。

我们将比较 Copy-Item cmdlet 的两个示例以将 test.txt 复制到同一目录中的 test2.txt

以下示例使用省略了参数名称的基本格式。

-WhatIf 参数显示 cmdlet 运行时会发生什么。cmdlet 未运行。

Copy-Item "test.txt" "test2.txt" -WhatIf

输出:

What if: Performing the operation "Copy File" on target "Item: C:\Users\rhntm\test.txt Destination: C:\Users\rhntm\test2.txt".

现在,让我们使用数组喷射执行相同的操作。此示例在 $ArrayArguments 变量中创建参数值数组。

另一个命令通过将命令中的 $ 符号替换为@ 来使用 $ArrayArguments 变量。

$ArrayArguments = "test.txt", "test2.txt"
Copy-Item @ArrayArguments -WhatIf

输出:

What if: Performing the operation "Copy File" on target "Item: C:\Users\rhntm\test.txt Destination: C:\Users\rhntm\test2.txt".

使用@符号在 PowerShell 中用哈希表进行拼接

同样地,你可以使用@符号来进行哈希表的拼接。

第一个命令创建一个哈希表,以将参数名称和参数值对存储在 $HashArguments 变量中。第二条命令在拼接中使用 $HashArguments 变量,将 $ 符号替换为@

$HashArguments = @{
    Path = "test.txt"
    Destination = "test2.txt"
    WhatIf = $true
}
Copy-Item @HashArguments

你可以为 -WhatIf 参数提供值 $true$false

输出:

What if: Performing the operation "Copy File" on target "Item: C:\Users\rhntm\test.txt Destination: C:\Users\rhntm\test2.txt".

正如你所看到的,它执行了与哈希表拼接相同的操作。

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

本文地址:

相关文章

在 PowerShell 中显示消息框

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

本文将讨论名为 Message Boxes 的 PowerShell GUI 的重要功能,我们将学习如何使用 PowerShell 编写和输出它们。

在 PowerShell 中输出信息性消息

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

本文将区分多个写入命令,例如写入信息、警告和错误消息,并提供我们可以在 PowerShell 中何时何地使用它们的情况。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便