【问题标题】:Can't run .run file using cygstart无法使用 cygstart 运行 .run 文件
【发布时间】:2015-02-05 01:21:48
【问题描述】:

我正在尝试在 cygwin 中运行 .run 文件,但我似乎总是收到此错误:

无法启动“~.run”:没有与给定文件扩展名关联的应用程序。

我需要成为超级用户,所以我尝试使用以下命令:cygstart --action=runas "$@"

我在某处读到 cygstart 用于调用已注册的 Windows 处理程序,所以这可能是问题所在,但我不确定。有什么方法可以让我使用 cygwin 以超级用户身份运行我的 .run 文件?

【问题讨论】:

  • 那个文件里面有什么?它是一些批处理脚本还是可执行文件?为什么不使用适当的扩展名?这意味着 cmd / bat 用于批处理脚本,exe 用于可执行文件等。

标签: cygwin


【解决方案1】:

如前所述,没有应用程序与您的 .run 文件相关联 系统。因此,您可以通过以下两种方式之一进行操作

用程序调用文件,例子

cygstart notepad.exe ~.run

告诉注册表如何处理未知扩展

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Unknown]
@=""
[HKEY_CLASSES_ROOT\Unknown\shell\Open\command]
@="notepad.exe \"%1\""

【讨论】:

  • 第一种方法只是使用记事本打开 .run 文件。我其实想执行它。
【解决方案2】:

这个问题与 Cygwin 无关,而是与 Windows 有关。 cygstart 与 Windows 的 start 工作方式相同。这意味着,如果您使用[cyg]start file.extension,它的工作方式与您在 Windows 资源管理器中双击该文件非常相似。

因此,如果您将 Windows 配置为在双击 *.run 文件时执行所需操作,cygstart 也可以正常工作。

我认为更容易的是使用 Windows 已经知道的适当扩展。这取决于您在 *.run 文件中的内容。如果是可执行文件,使用 exe 扩展名,如果是批处理脚本,使用 cmdbat,如果是 JavaScript,使用 js em> 等等

【讨论】:

    【解决方案3】:

    如果您使用 Linux 或其他衍生版本,则需要使用绝对路径执行 .run 文件,即使您已经导航到包含该文件的相应目录。见这里:

    http://the-chronicon.blogspot.com/2011/08/execute-run-file-in-current-folder-from.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 2021-10-08
      • 2021-02-23
      • 2019-01-14
      • 2019-11-15
      相关资源
      最近更新 更多