我正在尝试使用 plink 在 OVMS 服务器上执行远程命令。当我尝试执行一个简单的命令时,它工作正常:
plink -ssh -l USERID HOST-pw PASSWORD DIR
但是当我开始使用一些复杂的命令时,它会抛出错误:
plink -ssh -l USERID HOST-pw PASSWORD wnb search/keys="TRN|0567 6789"/log/sys
请建议。
试验和错误会结出果实。事实上,正如 Hein 所暗示的那样,问题在于引号没有正确传输,但语法不同。
这是对我有用的语法(Windows:plink(0.63)>> VMS):
plink -ssh -l USER HOST -pw PWD "mycommand arg, """quoted arg1""", """quoted arg2""" /opt1 /opt2"
在 VMS 上导致:
mycommand arg, "quoted arg1", "quoted arg2" /opt1 /opt2
因此: plink>>VMS double-quote="""
,但可能仍然存在字符问题,< > | << >>
因为 Windows cmd CLI 会将这些字符与管道混淆。
更好:使用plink -m cmds-file
选项在本地文件中传递远程命令:
plink -ssh -l USER HOST -pw PWD -m cmds.vms
其中cmd.vms
文件包含:
mycommand arg, "quoted arg1", "piped|arg" /opt1 /opt2