在 Powershell 中创建带有电子邮件正文的 .bat 文件
Creating .bat file with e-mail body in Powershell
我目前正在编写一个脚本,该脚本将读取来自某个发件人的邮件,该发件人将向 运行 发送脚本的一些命令。
主要思想:
发件人发送带有命令的邮件,例如:ipconfig /all > result.txt
并且收件人端的脚本 运行ning 将此命令复制到 .bat 文件并 运行ning . 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
我目前正在编写一个脚本,该脚本将读取来自某个发件人的邮件,该发件人将向 运行 发送脚本的一些命令。
主要思想:
发件人发送带有命令的邮件,例如:ipconfig /all > result.txt
并且收件人端的脚本 运行ning 将此命令复制到 .bat 文件并 运行ning . 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