批处理文件调用 %~1 并获取变量的当前值/字符串

2024-03-14

下面的代码与批处理文件(命令提示符)相关。我的问题是代码的一部分current value is %~1实际上并不显示的值%~1(我希望它说 string01 或 string02)我不太确定如何做到这一点。我环顾四周,但无法解决这个简单的问题。

@echo off 
goto :MainFunction 

:Func01 
echo. 
echo Running Func01 
echo Variable %~1 current value is %~1 
echo. 
echo Set new value for Variable %~1: 
set /p %~1= 
goto :eof 

:MainFunction 
echo This is the main function! 
set Var01=string01 
set var02=string02 
echo Var01 is equal to %Var01% 
echo Var02 is equal to %Var02% 
call :Func01 Var01 
call :Func01 Var02 
echo Var01 is now equal to %Var01% 
echo Var02 is now equal to %Var02% 
goto :eof 

您想在单个参数中同时获取变量名称和值吗?

在行echo Variable %~1 current value is %~1, 第二%~1必须评估。您需要另一层解析。这样做的“通常”方法是使用延迟扩张 https://stackoverflow.com/a/30284028/2152082:

@echo off 
setlocal enabledelayedexpansion
goto :MainFunction 

:Func01 
echo. 
echo Running Func01 
echo Variable %~1 current value is !%~1! 
echo. 
echo Set new value for Variable %~1: 
set /p %~1= 
goto :eof 

:MainFunction 
echo This is the main function! 
set Var01=string01 
set var02=string02 
echo Var01 is equal to %Var01% 
echo Var02 is equal to %Var02% 
call :Func01 Var01 
call :Func01 Var02 
echo Var01 is now equal to %Var01% 
echo Var02 is now equal to %Var02% 
goto :eof 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批处理文件调用 %~1 并获取变量的当前值/字符串 的相关文章

随机推荐