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

如何让PowerShell脚本仅接受enable/disable命令行参数?

完善PowerShell脚本实现参数校验逻辑

针对需求——脚本仅接受enable或disable作为命令行参数,参数为空/非法时显示帮助提示,以下是完善后的代码及逻辑说明:

完整实现代码

# 定义允许的合法参数值
$validArguments = @('enable', 'disable')

# 校验参数:数量必须为1,且值在合法列表内
if ($args.Count -ne 1 -or $validArguments -notcontains $args[0]) {
    $scriptFileName = Split-Path -Leaf $PSCommandPath
    Write-Host "错误:必须指定 enable 或 disable 作为唯一命令行参数。`n`n示例用法:`n.\$scriptFileName disable`n.\$scriptFileName enable" -ForegroundColor Red
    exit 1
}

# 参数合法时执行后续业务逻辑
$selectedAction = $args[0]
Write-Host "执行操作:*$selectedAction*"
# 替换为你的实际业务代码,比如原代码中的系统信息输出
# Write-Host "$osName $bit (Build $buildNumber) Release ID $displayVersion"

逻辑说明

  • 合法参数定义:用数组$validArguments明确允许的参数值,便于后续维护和扩展
  • 全面校验:同时检查参数数量(必须为1)和参数值(必须在合法列表内),覆盖了以下异常场景:
    • 未提供任何参数
    • 提供了多个参数
    • 提供了enable/disable之外的非法值
  • 友好提示:动态获取当前脚本文件名,避免硬编码;用红色高亮错误信息,提升可读性;明确给出正确示例
  • 终止执行:校验失败后用exit 1终止脚本,避免后续错误逻辑执行

原代码的不足

原代码仅判断了参数为空的情况,未处理参数值非法、参数数量过多的场景,无法完全满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:18:31