我在命令提示符下尝试以下字符串在我的服务器上执行一些(测试)远程命令:
plink.exe -ssh -pw [PASSWD] [U/NAME]@[SERVER] -m cmds.bat -v
在我的cmds.bat
文件中,我有一些测试命令:
sleep 3
@echo off
ls -la ~/
@echo on
sleep 1
我现在想要在传递参数的同时运行远程脚本。该参数将由我的VBA代码处理和追加。这是我坚持的部分。请注意,以下VBA代码只是一个片段;调用Plink的部分。周围的代码,我很满意:
If re.Test(Msg.Subject) Then
Set matchCol = re.Execute(Msg.Subject)
For Each match In matchCol
shellStr = "plink.exe -ssh [USERNAME]@[SERVER] -pw [P/WORD] -m cmds.bat " & match
Shell(shellStr, vbNormalFocus)
Next
End If
违规行是:
shellStr = "plink.exe -ssh [USERNAME]@[SERVER] -pw [P/WORD] -m cmds.bat " & match
我不知道如何将变量match
中保存的值(由Regexp捕获)附加到打开shell时要执行的字符串。
bat文件将处理在远程Unix服务器上实际运行脚本的命令,而不是上面示例中的ls -la ~/
我将使用:
python ~/myscript.py [ARGUMENT FROM VBA VARIABLE "match"]
但是如何将此match
变量的值传递给它?
答案 0 :(得分:0)