MobaXterm中指定选项卡名称的命令行参数

项目需求是想在windows平台通过命令行的方式调用MobaXterm的ssh工具并自动连接到指定的远程服务器。

在cmd中使用命令行调用MobaXterm,并ssh登录到远程服务器上的方式是使用sshpass明文密码的方式登录到服务器中。其中-newtab表示打开新的一个tab,后面"sshpass的引号不可省略。

在MobaXterm中指定选项卡名称的命令行参数如下:

MobaXterm.exe -newtab "sshpass -p $password ssh $Username@$host -p $port"

因为是在golang项目中修改在golang语言中调用cmd命令的方式:
1、直接使用exec.Command的方式,直接使用命令+参数的方式。

type Cmd struct {  
    Path         string   //运行命令的路径,绝对路径或者相对路径  
    Args         []string   // 命令参数  
    Env          []string         //进程环境,如果环境为空,则使用当前进程的环境  
    Dir          string   //指定command的工作目录,如果dir为空,则comman在调用进程所在当前目录中运行  
    Stdin        io.Reader  //标准输入,如果stdin是nil的话,进程从null device中读取(os.DevNull),stdin也可以时一个文件,否则的话则在运行过程中再开一个goroutine去  
             //读取标准输入  
    Stdout       io.Writer       //标准输出  
    Stderr       io.Writer  //错误输出,如果这两个(Stdout和Stderr)为空的话,则command运行时将响应的文件描述符连接到os.DevNull  
    ExtraFiles   []*os.File     
    SysProcAttr  *syscall.SysProcAttr  
    Process      *os.Process    //Process是底层进程,只启动一次  
    ProcessState *os.ProcessState  //ProcessState包含一个退出进程的信息,当进程调用Wait或者Run时便会产生该信息.  
}  

2、如果想直接使用字符串的方式(直接在cmd中执行的命令),可以先调用cmd.exe然后向cmd.exe中传递想要运行的参数的方式。项目中的使用方式如下:

cmdline := mobaxPath + " -newtab \"sshpass -p " + t.Password + " ssh " + " -p " + t.Port + " " + fmt.Sprintf("%s@%s", t.UserName, t.Ip)
cmd := exec.Command("cmd.exe", "/c", "start "+cmdline)

*****注意:
这里传入参数的时候最后不要加",否则调用的mobaxterm会出现session stopped的问题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值