本帖最后由 yhcfsr 于 2018-8-30 14:54 编辑
回复 9# 踏沙行
- 19行new改为string,20行删掉.
- 你这个不用SETLOCAL保护的根本不需要变量返回,只需要在子程序中对变量string赋值就行了.
- 不过理论上,第20行将string的值重复赋值给string应该也没什么问题啊?
- 你测试时最好用echo来跟踪变量,或许能找到原因.
给你写个参考例子.- @echo off
-
- call :test1 "bat home" val1
- echo;%val1%
- call :test2 "123 4567" val2
- echo;%val2%
- pause&exit
-
- :test1
- set "str1=%~1"
- set "str1=%str1:~,-1%"
- set "val1=%str1%"
- goto:eof
-
- :test2
- setlocal
- set "str2=%~1"
- set "str2=%str2:~,-1%"
- endlocal&set "%2=%str2%"&goto:eof
复制代码
|