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

如何无需键入powershell即可临时绕开执行策略直接运行ps1脚本

实现方案:单文件兼容CMD/PowerShell脚本

你可以通过编写多语兼容脚本实现单文件分发、用户无感知运行的需求,不需要修改系统全局执行策略,也不用同时维护两份脚本文件:

  1. 脚本后缀使用.cmd,用户直接输入脚本名即可运行,和普通CMD脚本使用逻辑完全一致
  2. 脚本开头加CMD兼容的引导代码,自动调用PowerShell并临时启用Bypass执行策略,仅对本次进程生效,不会修改系统全局配置
  3. 引导代码后直接写纯PowerShell逻辑即可,CMD会自动跳过这部分内容

代码示例(实现取当前目录第一个文件的需求)

<# :
@powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-Expression (Get-Content '%~f0' -Raw)"
@goto :EOF
#>
# 此处开始编写任意PowerShell代码
Get-ChildItem -File | Select-Object -First 1 -ExpandProperty Name

实现原理

  • 在CMD解析逻辑中,<# :是无效标签,会直接执行后续的PowerShell调用命令,执行完成后通过goto :EOF直接退出,不会解析后面的PowerShell代码
  • 在PowerShell解析逻辑中,<#是多行注释起始标记,前面的CMD引导代码会被整体识别为注释,仅执行注释结束后的PowerShell逻辑

如果你坚持要使用.ps1后缀的文件,受Windows默认的文件关联规则限制,无法直接在CMD中输入脚本名运行,必须手动调用powershell命令或者修改系统级的文件关联配置,普通用户使用门槛较高,不推荐这种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:24:03