当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名

作者:精品下载站 日期:2024-12-14 05:00:20 浏览:15 分类:玩电脑

PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名


[玩转系统] PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名

PowerShell 文件扩展名简介

一般来说,当有人想到 PowerShell 和文件扩展名时,他们只会想到 .ps1。对于 95% 的用户来说,不可能存在与 PowerShell 关联的其他文件扩展名。本文将重点关注这些文件扩展名。

3 种不同的 PowerShell 文件扩展名

以下是与 PowerShell 相关的一些其他扩展:

[玩转系统] PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名

  • .psm1
  • .psd1
  • .ps1xml

1..psm1 文件

这代表一个 PowerShell 模块文件。模块是作为包组合在一起的 cmdlet、变量、函数和工作流的集合。模块首次在 PowerShell 版本 2 中引入。模块通常存储在以下两个主要位置。

  • %windir%\system32\WindowsPowerShell\v1.0\Modules 这是系统中任何用户都可以使用的系统范围模块的位置。
  • %USERPROFILE%\Documents\WindowsPowerShell\Modules。

每个模块都有一个保存它的专用文件夹。它还包含一个名为 Module Manifest 的 psd1 文件。清单文件包含模块的设置,例如 PowerShell 版本、作者和其他设置。可以通过运行 Get-Module -ListAvailable cmdlet 来获取可用模块的列表。

一个模块通常由四个基本块组成。

  • 一段代码
  • 组件
  • 清单文件
  • 包含以上三个的目录。

模块类型

有四种不同类型的模块:

[玩转系统] PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名

  • 脚本模块:它包含 PowerShell 变量、函数和工作流程。
  • 二进制模块:它是用 c# 等语言编写的已编译的 .net 框架代码。
  • 清单模块:它没有任何直接代码,而是使用清单文件来使用其他模块的功能。
  • 动态模块:这些模块不存储在任何地方,而是由 New-Module cmdlet 动态生成。

2..psd1 文件

这些文件是清单文件。它描述了模块的内容并指示了模块的处理。它是一个带有哈希表的文本文件,哈希表具有键值对。清单文件通过将清单命名为与模块相同并将清单存储在模块的根目录中来链接到模块。以下是将出现在清单文件中的一些元素。 New-ModuleManifest cmdlet 用于创建新的模块清单文件。

  • RootModule:其类型是字符串,表示与清单关联的脚本模块或二进制模块。
  • ModuleVersion:其类型是版本。它表示与清单文件关联的模块的版本。
  • GUID:其类型为GUID,表示模块的唯一标识符。
  • 作者:它的类型是一个字符串,代表模块的作者。如果未指定该值,NewModuleManifest 将使用当前用户名作为作者姓名。
  • 描述:它的类型是字符串,提供模块功能的描述。
  • CLRversion:其类型为版本,表示用于运行或使用该模块的最低 CLR 版本。
  • RequiredModules:其类型是一个对象,表示导入此模块之前需要加载的其他模块。
  • RequiredAssemblies:其类型是字符串,表示导入此模块之前需要加载的其他程序集。

3..ps1xml 文件

它是 PowerShell XML 文件的扩展名。这些配置文件包含有关如何显示输出以及正在使用的其他格式相关样式的详细信息。 .ps1xml 文件会随 PowerShell 自动安装。它们经过数字签名以防止编辑,因为编辑这些文件需要大量知识,并且对它们所做的任何更改都可能产生巨大影响。通常,XML 文件用于扩展 PowerShell 对象的功能。

可以通过三种方式将扩展数据类型加载到 PowerShell 会话中,如下所示:

  • 它们由 PowerShell 自动加载。
  • 当 types.psxm1 文件模块导入到当前会话时。
  • 使用 Update-TypeData Cmdlet。

PowerShell 中有许多内置的 XML 文件。它们存在于主目录中并自动加载到每个会话。要向现有 PowerShell 对象添加新属性或方法,必须通过 types.ps1xml 文件完成。

要添加新的 .ps1xml 文件,请执行以下步骤:

  • 复制现有的 .ps1xml 文件。
  • 进行更改并使用扩展名 .ps1xml 保存文件。
  • 建议将文件保存在主目录中,但这不是强制性的。
  • 使用 Update-TypeDate cmdlet 将文件包含在当前会话中。

PowerShell 文件扩展名示例

下面给出了 PowerShell 文件扩展名的示例:

示例 #1:创建新的 .psm1 文件

代码:

Write-Host "Demo of module creation"
param(
[string[]] $name,
[string[]] $age,
[string[]] $phonenumber,
[string[]] $address
)
function function1 ()
{
Write-Host "Sample function1"
}
function function2 ()
{
Write-Host "Sample function2"
}
function function3 ()
{
Write-Host "Sample function3"
}
Export-ModuleMember -Function function1
Export-ModuleMember -Function function2
Export-ModuleMember -Function function3

将上述代码保存为 .psm1 文件在任何位置,但建议存储在与 PowerShell 相同的位置。

使用以下 cmdlet 将上述文件导入 PowerShell 会话。

Import-Module C:\Vignesh\Script\test.psm1 -ArgumentList "vignesh","10","454545","sadsad"

导入模块后,就可以访问模块内的函数。

输出:

[玩转系统] PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名

示例 #2:创建 .psd1 文件

代码:

@{
Author ='Vignesh Krishnakumar'
CompanyName='test company'
Copyright ='All rights are subject to test company'
GUID = 'b000090c-dzzz-4340-9df4-3b8326000000'
ModuleVersion = '6.6.6'
Description='Test Manifest file'
}

将以上内容另存为 .psd1 文件。

要导入清单文件,请使用以下 cmdlet:

Import-PowerShellDataFile -Path ‘C:\Vignesh\Script\test.psd1’

输出:

[玩转系统] PowerShell 文件扩展名 | 3 种不同的 PowerShell 文件扩展名

结论

因此,本文介绍了 PowerShell 中除 .ps1 之外的一些常用文件扩展名类型。它详细介绍了 .psd1、.psm1 和 .ps1xml 文件扩展名及其用法和功能。本文还展示了创建模块文件、访问模块、创建清单文件以及导入它们的示例。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯