You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理文件中运行指定PowerShell脚本?

批处理内嵌PowerShell脚本实现单文件执行方案

要把你的PowerShell脚本嵌入批处理单文件执行,不能逐行加powershell前缀(会导致每个命令在独立进程执行,上下文丢失),正确做法是把整个PowerShell脚本作为一个整体传递给powershell.exe,以下是可行的批处理代码:

@echo off
powershell -ExecutionPolicy Bypass -Command ^
"ipconfig /all | clip; ^
$ol = New-Object -ComObject Outlook.Application; ^
$mail = $ol.CreateItem(0); ^
$mail.To = 'your-recipient@example.com'; ^
$mail.Subject = 'My Ip'; ^
$ip = Get-Clipboard; ^
$mail.HtmlBody = '<h1>' + $ip + '</h1>'; ^
$mail.Display(); ^
$mail.Send()"
pause

关键说明:

  • @echo off:关闭批处理命令的默认输出,让执行过程更干净;末尾的pause可以防止执行完成后窗口直接关闭,方便查看结果。
  • powershell -ExecutionPolicy Bypass:临时绕过PowerShell执行策略限制,确保脚本能正常运行(无需修改系统全局执行策略)。
  • ^:批处理中的换行转义符,用来拆分长命令,保持脚本的可读性,所有PowerShell命令被包裹在同一个双引号块中,确保在同一个PowerShell进程内执行,变量和对象上下文不会丢失。
  • 把PowerShell中的双引号替换为单引号(如'your-recipient@example.com'),避免和批处理外层的双引号冲突,也可以将双引号转义为"",效果一致。

注意事项:

  • 替换your-recipient@example.com为实际的收件人邮箱地址。
  • 确保系统已安装Outlook,且当前用户有Outlook的邮件发送权限。

内容的提问来源于stack exchange,提问作者Redacted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:17:19