在java中执行powershell命令时出现TerminatorExpectedAtEndOfString错误

时间:2017-03-15 13:54:52

标签: java powershell

String cd = "";
    String file="E:/Code.java";
    cd+="powershell\n";
    cd+="$username=\"mail@gmail.com”;\n";
    cd+="$password=”pwd”;\n";
    cd+="$smtpServer = “smtp.gmail.com”;\n";
    cd+="$msg = new-object Net.Mail.MailMessage;\n";
    cd+="$smtp = new-object Net.Mail.SmtpClient($smtpServer,587);\n";
    cd+="$smtp.Credentials = New-Object System.Net.NetworkCredential(\"mail@gmail.com\", \"password\");\n";
    cd+="$smtp.EnableSsl = $true;\n";
    cd+="$msg.From = \"mail@gmail\";\n";
    cd+="$msg.To.Add(“mail@gmail.com”);\n";
    cd+="$msg.Body=”Your message Body”;\n";
    cd+="$msg.Subject = “"+System.getProperty("user.name")+"”;\n";
    cd+="$file=“"+file+"”;\n";
    cd+="$att = new-object Net.Mail.Attachment($file);\n";
    cd+="$msg.Attachments.Add($att);\n";
    cd+="$smtp.Send($msg);";
    String line;

    Process p=Runtime.getRuntime().exec(cd);
     System.out.println("Standard Error:");
      BufferedReader stderr = new BufferedReader(new InputStreamReader(
        p.getErrorStream()));
      while ((line = stderr.readLine()) != null) {
       System.out.println(line);
      }
      stderr.close();

    System.out.println("Done");

输出结果为:

标准错误: 该字符串缺少终结符:“。     + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException     + FullyQualifiedErrorId:TerminatorExpectedAtEndOfString

完成

1 个答案:

答案 0 :(得分:2)

使用Notepad ++打开代码

查看编码类型。

似乎引号是ASCII引号。尝试使用反引号符号后跟双引号,如:

  

;#34

`&

相关问题