【问题标题】:How to run shell command on Mac?如何在 Mac 上运行 shell 命令?
【发布时间】:2016-12-20 18:21:23
【问题描述】:

如何使用 Excel VBA 代码运行 shell 命令?

我想通过 shell 运行chmod +x /Users/asdasd/Music/playlistLoad.sh

我使用 Python 和 os.system("Command here") 实现了这一点。

【问题讨论】:

  • 你研究过这个吗?在哪里?如果没有帮助,请告诉我们原因。你尝试了什么?如果你不尝试,为什么不呢?如果你做了,你做了什么?我们希望看到您尝试解决这个问题。

标签: excel vba macos shell


【解决方案1】:

您需要调用shell 函数。所以你的代码是

Shell("chmod +x /Users/asdasd/Music/playlistLoad.sh")

shell 函数可以在任何操作系统上运行,但是您需要将传递给它的命令调整到您正在使用的操作系统上。在您的示例中,您具有 UNIX 样式,因此它仅适用于 Linux/MacO 或其他 *NIX 系统。 Windows 在其权限中没有可执行文件的概念,因此无论如何您的命令在 Windows 中都没有等效项。

【讨论】:

  • 感谢您的回答!但是每当我尝试运行这个 Shell("open google.com/") 时,它就会说“找不到路径”?谢谢!它也不适用于我以前的命令
【解决方案2】:

在 Mac 上更高版本的 Excel 中,Shell 命令似乎已损坏。我根本无法让 Shell 在 Excel v15.58 上运行,我相信这是由于沙盒问题。

我找到的解决方案是在 AppleScript 中创建一个可以从 VBA 调用的包装函数,然后执行 shell 命令并返回结果。

额外的障碍(除了创建 AppleScript)是该脚本必须位于:

~/Library/Application Scripts/com.microsoft.Excel

这是我的包装脚本(保存为 ShellExScript.scpt):

on ShellEx(shellCmd)
    do shell script shellCmd
end ShellEx

然后您可以像这样在 excel 中执行 shell 命令:

Dim commandResult As String
Dim commandToRun As String

commandToRun = "ls ~/"

commandResult = AppleScriptTask("ShellExScript.scpt","ShellEx",commandToRun)

Range("A1").Value = commandResult

【讨论】:

    猜你喜欢
    • 2018-04-07
    • 2012-01-23
    • 2015-01-21
    • 2017-11-16
    • 2014-07-23
    • 2020-05-16
    • 2021-12-31
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多