我需要帮助。
此命令对我不起作用,因为
系统找不到指定的文件。
powershell -command "& { Send-MailMessage -From "janohanes155 <janohanes155@gmail.com>" -To "janohanes155 <janohanes155@gmail.com>" -Subject "Sending the Attachment" -Body "Got it" -Attachments "c:shadeinfo.txt" -Priority High -dno onSuccess, onFailure -SmtpServer "smtp.gmail.com" -Credential "********/*********"}"
我该怎么办?
谢谢您的帮助。
您的问题是您的双引号字符串包含嵌入式 "
chars。您忘了逃脱。
此外,由于有可能是Escapin的 2 层 g-一个用于当前壳的一个,一个用于 target shell,可能需要其他逃脱。
逃脱的特定方法取决于您从。。
调用命令以下示例使用简化的命令,该命令更简洁地证明了问题。以纯PowerShell形式,命令是:
Write-Output "jdoe <jdoe@example.com>"
奇怪的是,当PowerShell通过外部传递-Command
值时,它需要嵌入的"
chars。为 -escaped ,而 powerShell- 内部
`
-scaping必须使用。
来自Windows Run对话框( win r ):
所有所需的就是 -escape嵌入的
"
chars。,以获取目标powershell实例(无 current shell):
powershell -command "& { Write-Output "jdoe <jdoe@example.com>" }"
来自cmd.exe
(命令提示):
powershell -command "& { Write-Output "jdoe ^<jdoe@example.com^>" }"
除了 -ESCAPING
"
之外,您还必须^
-ESCAPE <
和>
cmd.exe
Think Think Think think think 是 em> em> em> em e em> exter 识别 -escaped
"
chars。如逃脱(cmd.exe
仅识别""
)。
这是<
和>
的意外解释为 shell重定向操作员 cmd.exe
引起了您遇到的错误消息。
来自PowerShell 本身:
powershell -command "& { Write-Output `"jdoe <jdoe@example.com>`" }"
除了 target powershell实例的 -ESCAPING
"
外,您还必须`
-ESCAPE "
chars。对于 current powershell实例(SIC)。