Powershell脚本命令持久化

2024-05-11

我开始学习 Powershell 并编写一个模块(psm1)来存储我的函数。 然后我将这段代码插入到模块中,以便在修改模块时重新加载模块:

function reload
{
    Remove-Module init
    Import-Module F:\Script\init.psm1
}

这个函数的结果对我来说有点奇怪:

PS F:\Script> Get-Module

ModuleType Name                                ExportedCommands
---------- ----                                ----------------
Script     init                                {cpu, ie, lol, outlook...}
Manifest   Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest   Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}


PS F:\Script> reload
PS F:\Script> Get-Module

ModuleType Name                                ExportedCommands
---------- ----                                ----------------
Manifest   Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest   Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}


PS F:\Script>

为什么函数中的第二个命令没有效果? 我还注意到,如果我在函数末尾插入“Get-Module”,该模块就会出现在列表中,就像模块在其他 Powershell 实例/会话中“运行”一样。 如果是这样,有没有办法让效果持续下去?

谢谢你!

EDIT:

我暂时通过在导入函数中添加一个参数来指定加载模块的范围来解决:

Import-Module F:\Script\init.psm1 -Global

这是处理范围的正确方法吗?


也许这是因为模块中的函数是在模块范围内执行的。

这里红色箭头下方显示了范围解析顺序。

F1 函数调用 F2 函数和 F2 函数调用模块内的函数。函数 F1 和 F2 在默认范围内获取它们的变量。函数 FMOD 使用模块范围。

这可以解释为什么在函数内部调用 Get-Module 时会显示 Ini。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell脚本命令持久化 的相关文章

随机推荐

  • 如何使用Python高效地将CSV文件数据插入MYSQL?

    我有一个带有 aprox 的 CSV 输入文件 400 万条记录 插入已运行超过 2 小时 但仍未完成 数据库仍然是空的 关于如何实际插入值的任何建议 使用insert into 并且更快 比如将插入物分成块 我对 python 还很陌生
  • 对按 numpy 中的变量分组的行取平均值

    我有一个如下所示的 numpy 数组 array 0 23810484 0 00020161 0 41350806 0 2421371 0 02237903 0 08084677 0 00020161 0 00221774 0 000201
  • 将列表字典扁平化为数据框

    我有一个列表字典说 data a 80 130 b 64 c 58 80 如何将其展平并将其转换为数据框 如下所示 扁平化字典的一种选择是 flattened data k str i x for k v in data items for
  • 如何将 TGifImage 中的帧提取为位图?

    下面的演示尝试在表单的画布上绘制 GIF 这不起作用 图像不会前进 如何让它发挥作用 procedure TForm1 FormCreate Sender TObject begin GIF TGIFImage Create GIF Loa
  • 为什么 Haskell 的默认字符串实现是一个字符链接列表?

    Haskell 默认值的事实String众所周知 实现在速度和内存方面都效率不高 据我所知 lists一般来说 在 Haskell 中实现为单链表 并且适用于大多数小型 简单数据类型 例如Int 这似乎不是一个好主意 但是对于String这
  • UITableViewCellDeleteConfirmationControl 问题

    我在项目中使用以下代码 if NSStringFromClass subview class isEqualToString UITableViewCellDeleteConfirmationControl 这在 iOS 5 和 6 上运行
  • WPF 应用程序在第一次交互(例如单击按钮)后停止/冻结

    我目前在 WPF 中遇到问题 UI 加载正常 但每当进行第一次用户交互时 例如单击按钮 应用程序似乎会停止 或者例如 如果我有两个显示 MessageBox 的按钮 则第一次单击将等待几秒钟 然后显示MessageBox 但任何后续交互都是
  • 禁用 Firefox 的自动填充

    是否可以禁用 Firefox自动填充功能而不禁用自动完成 我知道我可以这样做 autocomplete off 但我不想禁用自动完成 只是禁用自动填充 Firefox 正在填充一些本应为空的隐藏字段 这主要是用户刷新页面时出现的问题 表单字
  • cmake 不会在更改时重建 externalProject

    我有以下 CMakeLists txt cmake minimum required VERSION 3 0 project addProject include ExternalProject set ExternalProjectCMa
  • “Git 推送非快进更新被拒绝”是什么意思?

    我正在使用 Git 来管理我的两台计算机和我的开发 我尝试将更改提交到 GitHub 但收到此错误 无法将一些参考推送到
  • CameraX 相机加载速度慢

    因此 我从使用旧版相机 api 迁移到 CameraX 尽管设置非常简单 但我注意到一个问题 现在 相机似乎需要比以前几乎两倍 甚至更长 的时间才能开始显示预览 我正在 Galaxy s7 上进行测试 我的代码如下所示 val previe
  • 将占位符添加到我的 html 网站的 Google 自定义搜索引擎中的文本框

    我使用以下代码添加了谷歌自定义搜索引擎 function var cx 005899633628958982661 wekn1lpckzg var gcse document createElement script gcse type t
  • 图像未出现在 Tkinter 上

    我有一个问题Tkinter因为我想添加图像作为框架的背景 但是 我尝试了很多方法但没有显示出来 我在代码的开头 在解决这个问题后我将继续前进 这是我的代码 import Tkinter from Tkinter import sc Tk s
  • 使用Intel的PIN工具来计算程序中缓存命中/未命中的次数

    我一直在尝试编写一个 pintool 来检测给定程序中的缓存命中和未命中情况 我发现有INS IsMemoryRead Write等调用来判断指令是否是LD ST 有没有办法确定指令是否命中或未命中缓存 如果是这样 是否还可以获得从缓存 内
  • 从左到右两排的光滑旋转木马

    我需要制作一个从左到右顺序的两行轮播 也有响应 With slider slick rows 2 slidesToShow 3 responsive breakpoint 768 settings slidesToShow 1 我收到这个订
  • Java 中何时使用原始类型和何时使用引用类型

    在这种情况下你应该使用原始类型 int 或引用类型 Integer This question https stackoverflow com questions 2508918 激发了我的好奇心 在什么情况下你应该使用原始 类型 int
  • 从鼠标位置获取地图纬度经度

    我正在尝试将鼠标在谷歌地图上的位置转换为 LatLng 对象 我看到很多关于通过谷歌地图 点击 事件等获取位置的帖子 如下所示 google maps event addListener map click function event m
  • 当REST客户端和服务器在同一台服务器上时如何避免网络调用

    我有一个 Web 应用程序 其中两个主要组件是网站 在 Groovy 和 Grails 中实现 和后端 RESTful Web 服务 使用 JAX RS Jersey 和 Spring 实现 这两个都将在 Glassfish 中运行 该网站
  • C++调用基类的模板函数

    下面是两个案例 情况 1 Base gt BaseIndirect gt DerivedIndirect 情况 2 基础 gt 派生 在案例 2 中 我可以使用 3 个符号调用基类的模板函数 在情况 1 中 我可以仅使用其中一种符号来调用基
  • Powershell脚本命令持久化

    我开始学习 Powershell 并编写一个模块 psm1 来存储我的函数 然后我将这段代码插入到模块中 以便在修改模块时重新加载模块 function reload Remove Module init Import Module F S