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

PowerShell如何将用户输入拼接为脚本路径并赋值给变量?

解决PowerShell脚本调用问题

你的代码问题点

  1. 变量赋值语法错误:Set-Variable的正确写法不是set-variable test = "xxx",且你错误地把路径拼接逻辑写在了变量赋值语句里,没有正确接收用户输入内容。
  2. 管道使用不当:管道确实是将前一个命令的输出传递给后一个命令作为输入,但你当前的写法没有让Set-Variable正确接收Read-Host的输出。
  3. Invoke-Expression存在安全风险:直接执行字符串形式的命令容易被注入恶意代码,属于不推荐的写法。

正确实现代码

# 获取用户输入的不带.ps1后缀的脚本名称
$scriptName = Read-Host -Prompt "请输入要执行的脚本名称(不带.ps1后缀)"
# 拼接成完整的脚本路径
$scriptPath = ".\$scriptName.ps1"
# 调用执行目标脚本
& $scriptPath

当你输入test时,脚本会自动拼接成.\test.ps1并执行。

管道的正确用法补充

管道的作用确实是传递前一个命令的输出给后一个命令,如果你想用管道实现变量赋值,可以这么写:

Read-Host -Prompt "请输入脚本名称" | Set-Variable -Name scriptName
$scriptPath = ".\$scriptName.ps1"
& $scriptPath

这里Read-Host的输出通过管道传给Set-Variable的-Value参数(管道输入默认绑定该参数),完成变量赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:57:33