PowerShell 该术语不被识别为cmdlet函数脚本文件或可运行程序

问题描述 投票:0回答:3

我正在 powershell 中实现一个脚本并收到以下错误。屏幕截图正是我输入的内容以及由此产生的错误。

enter image description here

在此路径中有一个文件

Get-NetworkStatistics.ps1
,我从 Technet Gallery 获得。我正在按照其中的步骤进行操作,尽管存在错误。

powershell cmd powershell-2.0 command-prompt
3个回答
83
投票

您首先必须“点”获取脚本源,所以对您来说:

. .\Get-NetworkStatistics.ps1

第一个“点”要求 PowerShell 将脚本文件加载到您的 PowerShell 环境中,而不是启动它。您还应该使用

set-ExecutionPolicy Unrestricted
set-ExecutionPolicy AllSigned
请参阅(执行策略说明)。


3
投票

为了搜索者的利益,还有另一种方法可以生成此错误消息 - 调用脚本块名称时省略 $ 。

例如我有一个像这样的脚本块:

$qa = {
    param($question, $answer)
    Write-Host "Question = $question, Answer = $answer"
}

我尝试使用以下方式调用它:

&qa -question "Do you like powershell?" -answer "Yes!"

但那是错误的。正确的做法是:

&$qa -question "Do you like powershell?" -answer "Yes!"

1
投票

出现此错误消息的另一种方式。

如果 PowerShell 在目标文件以外的目录中打开,例如

如果

someScript.ps1
位于此处:
C:\SlowLearner\some_missing_path\someScript.ps1
,则
C:\SlowLearner>. ./someScript.ps1
将不起作用。

在这种情况下,导航到路径:

cd some_missing_path
那么这将起作用:

C:\SlowLearner\some_missing_path>. ./someScript.ps1

© www.soinside.com 2019 - 2024. All rights reserved.