下面的代码与批处理文件(命令提示符)相关。我的问题是代码的一部分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(使用前将#替换为@)