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

如何通过另一变量的内容作为名称访问批处理变量

批处理中间接访问变量值的实现方案

场景1:直接传入目标变量名,输出其值

命令行输入:

batch.bat myVar

批处理脚本(batch.bat)有两种实现方式:

方法1:用call命令实现

@echo off
call echo %%~1%%

方法2:用延迟环境变量扩展

@echo off
setlocal enabledelayedexpansion
echo !%1!
endlocal

原理:%1是脚本接收的第一个参数(即你传入的变量名)。call方式会把%%~1%%解析成%myVar%后执行echo;延迟扩展则是启用延迟后,通过!%1!直接间接引用变量值。

场景2:传入存储变量名的变量,输出目标变量的值

先提前定义变量:

set var_name=APPDATA

命令行输入:

batch.bat var_name

批处理脚本(batch.bat)写法:

方法1:call命令嵌套引用

@echo off
call set "target_var=%%~1%%"
call echo %%target_var%%

方法2:延迟扩展方式

@echo off
setlocal enabledelayedexpansion
set "target_var=!%1!"
echo !target_var!
endlocal

原理:先通过!%1!或%%~1%%拿到传入变量var_name的值APPDATA,再通过这个值间接引用对应的系统变量APPDATA的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:25:21