我对此有疑问。我没有使用任何聪明的$MyInvocation东西来修复它。如果通过右键单击脚本文件并选择edit打开ISE,然后从ISE中打开第二个脚本,则可以使用正常的。 script.ps1语法从另一个脚本中调用另一个脚本。
我的猜测是ISE具有当前文件夹的概念,像这样打开它会将当前文件夹设置为包含脚本的文件夹。
当我从正常使用中的另一个脚本中调用一个脚本时,我只是使用。 script.ps1,IMO修改脚本以使其在ISE中正常工作是错误的...
我有一个类似的问题,并以此方式解决了。
我的工作目录是通用脚本文件夹和服务器根目录中的特定脚本文件夹,我需要调用特定脚本文件夹(该脚本文件夹使用特定问题的参数调用通用脚本)。
如何在脚本中运行PowerShell内置脚本?
您如何使用内置脚本,例如
它们由您的计算机运行,并自动检查脚本的路径。
同样,我可以通过将脚本名称放在脚本块中来运行自定义脚本
这会将路径返回到每次您打开应用程序时PowerShell命令行将执行的文件的路径。
转到"文档",查看是否已经有WindowsPowerShell目录。我没有,所以
现在,我们已经创建了脚本,该脚本将在每次打开PowerShell应用程序时启动。
这样做的原因是,我们可以添加自己的文件夹来保存所有自定义脚本。让我们创建该文件夹,在Mac / Linux存放脚本的目录之后,我将其命名为" Bin"。
现在,我们希望每次打开应用程序时将该目录添加到我们的$env:path变量中,因此回到WindowsPowerShell目录并
现在,只要将脚本保存在该" Bin"目录中,外壳程序就会自动找到您的命令。
重新启动powershell,它应该是最早执行的脚本之一。
重新加载后在命令行上运行此命令,以在路径变量中查看新目录:
现在,我们可以从命令行或从另一个脚本中调用脚本,就像这样:
如您所见,我们必须使用.ps1扩展名来调用它们,直到为它们创建别名为止。如果我们想得到幻想。