无法将脚本名称识别为 cmdlet、函数等;在简单的脚本中也找不到位置参数

2024-02-02

我正在尝试做我的第一个剧本。要简单地让 PowerShell 提取在记事本中输入的脚本并保存为标题为“test”的 .ps1 文件(也尝试过脚本,但知道名称与它无关):

Write-Host "Hello, World!"

在 PowerShell 中我正在输入

& "C:\Scripts\test.ps1"

./test.ps1

我只遇到过这个:


./test.ps1.txt : The term './test.ps1.txt' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling of the
name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ ./test.ps1.txt
+ ~~~~~~~~~~~~~~
    + CategoryInfo: ObjectNotFound: (./test.ps1.txt:String) [], CommandNotFoundException  

已尝试在 PowerShell 中重命名该文件

PS C:\Scripts> Rename-Item test.ps1.txt test.ps1

我已经切换了RemoteSigned and Unrestricted,我尝试过一个代码,包括executionpolicy bypass(我很抱歉,我关上了窗户,没有写下来)。据我所知,一切都是最新的,并且我正在运行 Windows 10、Windows PowerShell 和常规 Windows 记事本。


首先,我强烈建议使用 Windows PowerShell ISE 来编写脚本。它是免费的,并且提供了相当不错的控制台/编辑器体验,因为它是免费的(据说有更好的,但这对我来说一直很好)。我使用 Visual Studio 来做其他事情,虽然它是一个指数级更好的产品(而且应该是),但 PowerShell ISE 的功能相当丰富。

接下来,如果您刚刚开始,您应该查看 Don Jone 的“Learn PowerShell 3.0 in a Month of Lunches”一书。它比最新版本落后两个版本,但是,所有信息仍然相关,一旦您读完这本书,您将能够轻松地自行寻求其他任何帮助。它涵盖了所有基础知识,是学习该语言的良好第一步。

现在,回答您的问题:PowerShell 脚本通常具有 .ps1 文件扩展名。其他扩展通常用于模块 (.psm1) 或 Windows PowerShell 利用的其他帮助程序内容。对于大多数事情,您将坚持使用 .ps1,当您开始需要其他扩展名时,我怀疑您将毫无问题地确定需要哪些扩展名。

通常有两种方法调用 PowerShell 脚本。第一个是来自普通命令提示符,并告诉 PowerShell 执行脚本。如下所示:

powershell.exe -File MyScript.ps1

我建议您使用一些附加参数,但使用情况取决于您的要求。这是我通常在我的标签上标记的内容:

powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File MyScript.ps1

这将告诉 PowerShell 进程忽略您设置的任何 PowerShell 配置文件,如果您的配置文件脚本中有很多东西可以执行诸如读取控制台输入之类的操作(对于您当前的情况,我假设您不,但将来可能)。另一个是 ExecutionPolicy:RemoteSigned 将告诉 PowerShell 基本上忽略从互联网下载的任何内容,但允许源自网络内部的任何内容自由运行。可能不是最佳实践,但如果您可以相信您的脚本存储库是安全的,那么这并不是一个可怕的策略。如果没有,则寻求比这更严格的内容(您可以通过在 PowerShell 提示符中键入“Get-Help about_Execution_Policies”来阅读执行策略,或者访问有关它们的 TechNet 页面 - 内容即使不相同,也应该相似) 。

第二种方法是从 Windows PowerShell 脚本内部进行。实际上更容易做到。请注意,您必须将执行策略设置为允许脚本运行,但此后您将一帆风顺。

. .\MyScript.ps1

这称为脚本的“点源”。在 Windows PowerShell 中执行此操作的优点是,如果您有类似充满函数的脚本之类的内容,它们会被添加到当前范围 (Get-Help about_Scopes),这意味着它们现在在您的当前会话中可用。一个很好的例子是在与主脚本一起分发的脚本中定义一个名为“Test-DomainConnection”的函数:您可以对与主脚本一起分发的脚本进行点源(这通常是在您将“标准”分开时完成的) “主脚本中的 PowerShell 函数),然后使用主脚本中的函数。这种方法有优点和缺点,但似乎普遍推荐(可能有一些社区扩展消除了手动管理的需要)。

如需更多信息,您可以致电获取有关_脚本的帮助从 Windows PowerShell 内部。由于您使用的是 Windows 10,因此您可能需要从管理 PowerShell 窗口运行 Update-Help,然后才能在本地系统上提供帮助内容。

如果您有任何其他问题,请随时给我留言:) 我已经使用 PowerShell 一段时间了,也许可以提供帮助。

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

无法将脚本名称识别为 cmdlet、函数等;在简单的脚本中也找不到位置参数 的相关文章

随机推荐

  • 如果 minSdkVersion>10,为什么 WidgetTab 中的图像不显示?

    我一直在尝试创建一个简单的TabActivity有 3 个选项卡 所有作品except如果我把android minSdkVersion 11 在清单文件中 不显示图标 如果我设置 minSdkVersion 10 一切都很好 我左顾右盼
  • 在 IntelliJ IDEA 中关闭选项卡时更改为最近使用的选项卡?

    当我关闭 IntelliJ 中的编辑器选项卡时 接下来会打开直接出现在其右侧的选项卡 相反 我宁愿打开最近使用的选项卡 例如 如果我打开这些选项卡 Foo java currently viewed Bar java 然后我使用CMD SH
  • 寻找 XSLT 库来创建 SVG 图表 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 XSLT 库来创建 SVG 图表 我需要饼图 条形图 折线图以及所有常见的图表 我希望输入
  • 保护 JavaScript eval 函数的安全

    我们希望让用户能够在我们的应用程序中执行自行创建的 JavaScript 代码 为此我们需要使用eval来评估代码 为了将所有安全问题降至最低 如果不是零 我们的想法是防止使用任何window or document代码中的函数 所以不行X
  • 使用 python 正则表达式仅替换字符的单个实例

    我正在尝试更换单身 带有其他内容的字符 并且想要忽略多个 连续的字符 我不太明白如何 我尝试使用前瞻 s a b c d re sub z s 这给了我 za zb zc zd 当我想要的是 za b c zd 我究竟做错了什么 注意 如果
  • 是否可以使用WCF与Windows内核模式软件进行通信?

    WCF 支持一些互操作性绑定 这些绑定是否允许与内核模式 sw 通信 AFAIK 内核模式 sw 可以打开命名管道 在Local System安全上下文 这些命名管道可以与 WCF 互操作吗 是的 您应该能够使用 WCF 中的命名管道绑定来
  • 如何从 C# 应用程序调用带有 void 指针的 C++ 函数?

    我有一个动态库 dll 用 C 编写 导出我想在 C 应用程序中使用的函数 int SendText void pControl char sText 鉴于它需要一个指向 void 的指针 我该怎么办 for void 你可以使用IntPt
  • 如何添加在 OSX 上按预期工作的菜单项分隔符?

    On Windows平台 与VCL 当我们想要添加一个分隔器在菜单中 我们添加一个TMenuItem with a Caption With 火猴 我们添加一个TMenuItem with a Text 它在 Windows 平台上按预期工
  • QtCreator Build 不会更新设计表单中的 UI 更改

    我的 Qt 项目使用影子构建 当我更改 MainWindow 表单 ui 文件 时 我构建了项目 但我的程序没有更新 GUI 如果我重建所有 GUI 将被更新 但重建速度非常非常慢 我尝试创建一个新项目 带有一些标签的空 QMainWind
  • MKMapView:获取注释图钉上的点击事件

    我正在使用一个MKMapView包含几个MKAnnotation pins 在地图上方我显示了UITableView的详细信息MKAnnotation pins 我的问题 当我选择一个引脚时 我想选择相应的表格单元格 为此 如果选择了引脚
  • show() 接受 1 个位置参数,但给出了 2 个

    我对我一直在处理的代码得到了一些很好的反馈 并且我已经得到了在 google collab 上运行的所有内容 但是当我在 Visual studio 上运行完全相同的代码时 我得到的错误是这样的 发生异常 类型错误 show 接受 1 个位
  • 一个好的 Java 排序列表

    我正在寻找一个好的java排序列表 谷歌搜索给了我一些关于使用 TreeSet TreeMap 的提示 但这些组件缺少一件事 随机访问集合中的元素 例如 我想访问排序集中的第 n 个元素 但对于 TreeSet 我必须迭代其他 n 1 个元
  • tkinter 小部件 ipad(x/y) 的工作方式与 pad(x,y) 不同

    我可以自定义外部填充所有四个侧面tkinter 小部件的使用 widget grid 0 0 padx left pad right pad pady top pad bottom pad 但是 当我更换padx and pady with
  • 对所有数组元素进行类型检查

    是否有任何简单的方法可以检查数组的所有元素是否都是特定类型的实例 而无需循环所有元素 或者至少有一种从数组中获取 X 类型的所有元素的简单方法 s array abd 10 10 1 s array map gettype s t arra
  • 函数的右值引用和返回值

    我是 c 11 的新手 在阅读时有以下问题C 11 常见问题解答 http www stroustrup com C 11FAQ html rval 假设我们有一个函数f 返回类型的值X 那么我们有以下几种方式来存储它的返回值 X a f
  • 无法更改 Google Cardboard 相机的 FOV

    我正在使用 Google Card Board Unity SDK 开发 Android 狙击手游戏 现在需要调整相机的 FOV 这导致我与 CardBoard cs 中名为 mockFieldOfView 的变量进行交互 在 Unity
  • Vue-cli 3:“命令失败:npm install --loglevel 错误”

    每次我尝试创建一个新项目 vue create my project 我收到此错误 错误 命令失败 npm install loglevel 错误 我使用的是 PC Windows 10 Vue cli 3 2 1 Node 8 11 3
  • 如何将 ReadonlyArray 转换为 any[]?

    一些本机角度函数返回 ReadonlyArray 一些本机角度回调传递 ReadonlyArrays 由于我的打字稿代码可能以多种方式调用 因此我不想要求传递给我的函数的所有数组都是 ReadonlyArrays 因此我需要将 Readon
  • 在 Android 中使用新 Material Design 主题的颜色

    我正在设计 Android 应用程序 并决定尝试新的 Material 主题 我在网上找到了新主题的所有可用配色方案 但无法找到包含调色板中所有颜色的相应 xml 文件 有谁知道我在哪里可以找到这个 以便我可以在我的风格中使用这些颜色 这是
  • 无法将脚本名称识别为 cmdlet、函数等;在简单的脚本中也找不到位置参数

    我正在尝试做我的第一个剧本 要简单地让 PowerShell 提取在记事本中输入的脚本并保存为标题为 test 的 ps1 文件 也尝试过脚本 但知道名称与它无关 Write Host Hello World 在 PowerShell 中我