Powershell附件发送

Powershell attachment sending

我需要帮助。

这个命令对我不起作用,因为

The system cannot find the file specified.

powershell -command "& { Send-MailMessage -From "janohanes155 <janohanes155@gmail.com>" -To "janohanes155 <janohanes155@gmail.com>" -Subject "Sending the Attachment" -Body "Got it" -Attachments "c:\shade\info.txt" -Priority High -dno onSuccess, onFailure -SmtpServer "smtp.gmail.com" -Credential "********/*********"}"

我该怎么办?

感谢您的帮助。

您的问题是您的双引号字符串包含 embedded " 个字符。你忘了逃跑.

此外,因为有潜在的2层escaping - 一层用于当前shell 和一个用于 目标 shell, 可能需要额外的转义 .

具体的转义方法取决于您在何处调用命令from

以下示例使用更简洁地演示问题的简化命令;在纯 PowerShell 形式中,命令是:
Write-Output "jdoe <jdoe@example.com>"

奇怪的是,当从外部向 PowerShell 传递 -Command 时,它需要嵌入 " 个字符。 \-转义,而PowerShell-内部 `-转义必须使用


来自 Windows 运行 对话框 (Win+R):

为了目标 PowerShell 实例(没有 current shell 涉及):

powershell -command "& { Write-Output \"jdoe <jdoe@example.com>\" }"

来自 cmd.exe(命令提示符)

powershell -command "& { Write-Output \"jdoe ^<jdoe@example.com^>\" }"

除了 \- 转义 " 之外,您还必须 ^- 转义 <> 个字符 cmd.exe 认为 是双引号字符串的外部,因为无法识别\-转义的" 字符。作为转义(cmd.exe 仅识别 "")。

cmd.exe<> 意外解释为 shell 重定向运算符 导致了错误您遇到的消息。


来自 PowerShell 本身:

powershell -command "& { Write-Output \`"jdoe <jdoe@example.com>\`" }"

除了 \-转义 " target PowerShell 实例之外,您还必须 `-转义 " 字符。对于 current PowerShell 实例(原文如此)。