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

PowerShell脚本中Git Submodule Foreach的双变量解析需求

PowerShell脚本变量解析问题解决方案

你的问题核心是PowerShell和git submodule foreach的变量解析优先级冲突:PowerShell会优先解析双引号内的所有变量,导致$name被当作PowerShell变量(而非git的环境变量)处理,而它在当前PowerShell上下文里不存在,所以无法正确解析。

解决方法很简单,只需要对$name进行转义,让PowerShell不要解析它,把它原封不动传给git:

param (
    [string]$TAG
)
git submodule foreach --recursive "echo `"$TAG on `$name`""

原理说明

  • $TAG没有转义,会被PowerShell正常解析为脚本传入的参数值;
  • `$name中的反引号是PowerShell的转义符,它会告诉PowerShell不要解析$name,直接将$name字符串传递给git,这样git submodule foreach`就能正确识别并解析这个内置变量。

你也可以用单引号简化写法,效果一致:

param (
    [string]$TAG
)
git submodule foreach --recursive "echo '$TAG on `$name'"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:39:54