我目前正在处理一个脚本,该脚本将从某个发件人处读取邮件,该发件人将发送一些命令以使脚本运行。
主要思想:
发件人发送带有以下命令的邮件:ipconfig /all > result.txt
,并且在收件人端运行的脚本将此命令复制到.bat文件,然后运行.bat文件以处理该命令。
编码:
$junk = $routlook.GetDefaultFolder(23)
$MI = $junk.items
foreach($m in $MI)
{
if($m.SenderEmailAddress -eq '<sender-address>')
{
Echo "@ECHO OFF" > com.bat
Echo $MI.item(1).Body > com.bat
.\com.bat
}
break
}
错误:
最佳答案
您的问题是您没有指定输出文件的编码。
解决此问题的最简单方法是使用Out-File
cmdlet并自行指定编码。请注意,对Out-File
的第二次及后续调用必须指定-Append
参数,否则您将覆盖文件。
$> "@ECHO OFF" | Out-File -FilePath cmd.bat -Encoding ascii
$> "Echo hi" | Out-File -FilePath cmd.bat -Encoding ascii -Append
$> .\cmd.bat
关于email - 在Powershell中使用电子邮件正文创建.bat文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602742/