使用Plink

时间:2018-08-21 11:40:36

标签: matlab batch-file cmd plink

我正在使用Windows 10中plink.exe中的cmd SSH到Ubuntu 16.04。在其中,我正在运行MATLAB,以运行以下命令:

try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end

为此,我生成以下命令来处理ssh,执行matlab并运行上述命令:

C:\plink.exe user@server -pw ****** "matlab -nodesktop -nosplash -noawt -r 'try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end'

运行以上命令,在MATLAB中出现以下错误:

Warning: Undefined function or variable 'path/to/files'.

事实证明,在matlab中,命令的构造如下:

someFunction(path/to/files, algorithm)

没有“单引号”:谢谢,plink :(。

请帮助您生成正确的命令?或者如果已经有一个类似问题的问题,我将很高兴引导我解决这个问题。

谢谢

1 个答案:

答案 0 :(得分:1)

这不是Plink故障。这就是Windows命令行解释器的工作方式。

添加标签,以便您可以从该领域的专家那里得到答案。


无论如何,我可以看到两种解决方案:

  • 将您的命令放入一个文件,如:

    matlab -nodesktop -nosplash -noawt -r "try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end"
    

    并使用带有Plink的文件(command.txt),例如:

    C:\plink.exe user@server -pw ****** -m command.txt
    
  • 如果您不想为命令使用单独的文件,这也应该起作用:

    echo matlab -nodesktop -nosplash -noawt -r "try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end" | C:\plink.exe user@server -pw ****** -T
    

    (请注意-T开关)。