首先,我强烈建议使用 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 一段时间了,也许可以提供帮助。