Windows 如何将带引号的字符串和其他值作为单个参数传递给另一个函数
如果一个变量的值既可以是要素空间,也可以不是此变量:Windows 如何将带引号的字符串和其他值作为单个参数传递给另一个函数,windows,batch-file,variables,cmd,quotes,Windows,Batch File,Variables,Cmd,Quotes,如果一个变量的值既可以是要素空间,也可以不是此变量: set myvar=value1 "my value 2" value3 如何将此参数作为一个整体参数提供给另一个函数,而不将其分解为其他参数 CALL: MYFUNC other.param1 myvar other.param2 :MYFUNC set other.param1=%1 set myvar=%2 set other.param1=%3 当遇到类似问题时,我曾经引用参数,但这种方法不再有效,因为参数本身已经
set myvar=value1 "my value 2" value3
如何将此参数作为一个整体参数提供给另一个函数,而不将其分解为其他参数
CALL: MYFUNC other.param1 myvar other.param2
:MYFUNC
set other.param1=%1
set myvar=%2
set other.param1=%3
当遇到类似问题时,我曾经引用参数,但这种方法不再有效,因为参数本身已经包含引号。将变量名称作为引用传递,而不是变量内容
@ECHO OFF
SET myvar=value1 "my value 2" value3
CALL :MYFUNC other.param1 myvar other.param2
GOTO :EOF
:MYFUNC
setlocal enabledelayedexpansion
set other.param1=%1
set myfuncvar=!%2!
set other.param3=%3
echo %other.param1%
echo %myfuncvar%
echo %other.param3%
endlocal
pause
将变量名作为引用而不是变量内容传递
@ECHO OFF
SET myvar=value1 "my value 2" value3
CALL :MYFUNC other.param1 myvar other.param2
GOTO :EOF
:MYFUNC
setlocal enabledelayedexpansion
set other.param1=%1
set myfuncvar=!%2!
set other.param3=%3
echo %other.param1%
echo %myfuncvar%
echo %other.param3%
endlocal
pause
将变量名作为引用而不是变量的内容传递。将变量名作为引用而不是变量的内容传递。