【问题标题】:Navigate to folder and run sendEmail from CMD导航到文件夹并从 CMD 运行 sendEmail
【发布时间】:2019-01-30 18:34:32
【问题描述】:

我正在为我的自动化测试构建一个简单的电子邮件报告系统(在 Katalon Studio 中)。

当测试失败时,使用 sendEmail 发送电子邮件。

    if (GlobalVariable.testSuiteStatus=='FAILED'){
      String bf = RunConfiguration.getProjectDir() + '/' + 'email.bat'
      Process p = Runtime.getRuntime().exec(bf)
    }

Email.bat 包含:

cmd /c start cmd /k cd c:\\Program Files\\sendEmail-v156
sendEmail.exe -f sender@email.com -t receiver@email.com -s smtp.server.com:587 -xu myUsername -xp myPassword -m 'Test report text'

每次运行时(或者当我只是双击 bat 文件时),只有第一行被执行。

那么,我该怎么做呢?

【问题讨论】:

    标签: batch-file cmd katalon-studio mail-sender test-reporting


    【解决方案1】:

    您告诉 cmd 再次打开 cmd 和 cd,这就是它在新窗口中所做的事情。当您退出新窗口时,它将尝试从您启动的工作目录处理 sendmail批处理文件来自。相反,只需尝试不使用 cmd /c/kcd /d 并直接从批处理中运行可执行文件:

    @echo off
    cd /d  "c:\Program Files\sendEmail-v156"
    start "" /wait sendEmail.exe -f sender@email.com -t receiver@email.com -s smtp.server.com:587 -xu myUsername -xp myPassword -m 'Test report text'
    

    【讨论】:

    • 它仍然不发送邮件。导航到所需路径后如何传递命令?例如。 start "" "cmd /k cd c:\Program Files\sendEmail-v156\" "echo foo" 应该导航到 c:\Program Files\sendEmail-v156\ 并执行 echo 命令吗?
    • 请忘记 cmd /k。当您在cd 到目录之后手动运行sendEmail.exe -f sender@email.com -t receiver@email.com -s smtp.server.com:587 -xu myUsername -xp myPassword -m 'Test report text' 时,该命令是否执行?
    • 没有问题,只有乐趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2020-04-02
    • 2015-04-14
    相关资源
    最近更新 更多