如何使用腻子将多个命令传递给VBA中的Shell函数?

时间:2019-05-01 15:33:08

标签: excel linux vba shell putty

正在尝试使用VBA shell命令连接到Linux服务器。无法执行其中的多个命令。

我的VBA脚本中包含以下代码,并且该命令文件包含命令列表

Private Sub main_function()

    cmd = "C:\putty.exe -t -ssh username@servername.com -pw password -P 22 -m c:\cmd.txt"
    retval = Shell(cmd, vbMaximizedFocus)

End Sub

sudo to user
cat > filename.txt
sh shellfile.sh

我想执行cmd.txt文件中列出的所有命令,但无法执行cmd.txt文件中的任何命令,该代码仅登录Linux并退出。

1 个答案:

答案 0 :(得分:1)

创建一个无需使用VBA即可运行的批处理文件,然后使用上面的代码简单地调用该批处理文件。您的问题当前与VBA无关。

有关如何制作批处理文件以使用Putty登录到服务器的信息,请参见这篇文章。

https://superuser.com/questions/1278434/create-a-batch-file-or-shortcut-to-putty-ssh-that-opens-a-session-and-runs-a-c

例如:我刚刚测试,就可以了

Private Sub main_function()

    cmd = "C:\test.cmd"
    retval = Shell(cmd, vbMaximizedFocus)

End Sub

确保您的批次在双击时可以正常工作,然后通过VBA调用。