【问题标题】:通过 PowerShell 在同一文件夹中运行可执行文件
【发布时间】:2018-07-02 01:15:11
【问题描述】:

我有一个 PowerShell 脚本,我想从中运行同一文件夹中的可执行文件:

RunTests.ps1

.\nunitlite-runner.exe

当我在资源管理器中右键单击脚本并选择 使用 Powershell 执行时,我收到以下错误:

Die Benennung ".\nunitlite-runner.exe" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt。上普吕芬 Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang。 贝 C:\Users\Test\Desktop\MyScripts\RunTests.ps1: 5 Zeichen:23 + .\nunitlite-runner.exe

基本上翻译为:

名称“.\nunitlite-runner.exe”未指定为 cmdlet、函数、脚本文件或可执行程序。检查 输入名称的拼写或路径是否正确(如果 包含)并重复该过程。

【问题讨论】:

  • & '.\nunitlite-runner.exe'?
  • 你试过$PSScriptRoot\nunitlite-runner.exe 吗? ....或任何其他确定脚本实际位置的方式...
  • 您是否以管理员身份运行脚本?当您以管理员身份运行时,它默认位置为 system32 目录。例如,我有一个脚本,其开头包含以下代码:if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File "$PSCommandPath"" -Verb RunAs; exit } 因此,即使我右键单击使用 powershell 运行,它也会以管理员身份运行。

标签: powershell


【解决方案1】:

好的,看来我找到了答案。问题不在于 Powershell 或脚本。取而代之的是 Free Commander。

当我通过上下文菜单运行脚本时,Free Commander 似乎没有正确设置工作目录(因此找不到可执行文件)。当我通过双击运行脚本时,它工作得很好。

【讨论】:

  • 解决你的问题的正确方法是使用实​​际的脚本路径而不是工作目录,如Olaf suggested:$PSScriptRoot\nunitlite-runner.exe& "$PSScriptRoot\nunitlite-runner.exe"
猜你喜欢
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2015-07-28
相关资源
最近更新 更多