代码之家  ›  专栏  ›  技术社区  ›  Jamie Marshall

Powershell dot sourcing在记事本中打开文件

  •  6
  • Jamie Marshall  · 技术社区  · 8 年前

    Exe:

    .\MyScript.ps1
    

    这个脚本运行得很好——总是弹出这些窗口真的很烦人。有没有办法抑制这种情况?

    示例2:这仍在启动notepad。

    cls
    
    Set-Location "\\PSCWEBP00129\uploadedFiles\psDashboard\"
    . .\assets\DCMPull\Powershell\SqlServerTransfer.psm1
    . .\assets\DCMPull\Powershell\RunLogging.psm1
    
    3 回复  |  直到 8 年前
        1
  •  7
  •   Thomas Glaser    8 年前

    您不能将源PowerShell文件与 .psm1 文件扩展名。一种选择是将其重命名为 .ps1 .

    Import-Module <module.psm1> .请注意 Import-Module 与dot采购不同。Dot sourcing在当前范围内运行脚本,并将所有变量、函数等保存在当前范围内。 导入模块 不会这样做。

    Export-ModuleMember

        2
  •  1
  •   Carl Walsh    4 年前

    除了Raziel的回答之外,还有很多想法是只能够使用 .ps1 扩展,以及它尝试将其作为系统可执行文件运行的原因。以下是 PeterWhittaker 在…上 GitHub

    . ./afile 只会在以下情况下执行某些操作: 当前目录中无扩展但可执行的文件,或 afile.ps1 文件,以前者为准 如果两者都存在,则优先;如果文件存在,但两者都不是

    . <filename> <filename> 中列出的目录 $env:PATH

        3
  •  0
  •   Andy    4 年前

    我遇到了完全相同的情况:如果点源导入 .psm1

    因为点源导入功能仅在后缀为的文件中有效 .ps1

    因此,这种现象并非针对 .PSM1 ,如果将扩展名更改为 TXT ,它将具有相同的效果。它对后缀不为的任何文件都具有相同的效果 .PS1 .

    你可以通过创建符号链接或硬链接来绕过这个问题!

    在PowerShell 7中,使用 New-Item .