Board logo

标题: [其他] [求助]for循环内如何endlocal&set %1= [打印本页]

作者: 2198114498    时间: 2022-6-14 22:03     标题: [求助]for循环内如何endlocal&set %1=

本帖最后由 2198114498 于 2022-6-14 22:10 编辑

以下是我自己测试的代码,Test2和Test3均提示错误,
但我的需求是最外层不使用setlocal enabledelayedexpansion,所以不能用Test4。
有办法让endlocal&set %1=在for循环内成功吗?
  1. @echo off
  2. cd /d %~dp0
  3. call :#Test t 11
  4. echo %t%
  5. call :#Test2 t 12
  6. echo %t%
  7. call :#Test3 t 13
  8. echo %t%
  9. setlocal enabledelayedexpansion
  10. call :#Test4 t 14
  11. echo %t%
  12. pause
  13. goto :eof
  14. :#Test
  15. setlocal enabledelayedexpansion
  16. for /f "delims=" %%a in ("%2") do (
  17.         set d2=%%a000
  18.         goto :@1
  19. )
  20. goto :eof
  21. :@1
  22. endlocal &set /a %1=1%d2:~0,3%-1000
  23. goto :eof
  24. :#Test2
  25. setlocal enabledelayedexpansion
  26. for /f "delims=" %%a in ("%2") do (
  27.         set d2=%%a000
  28.         endlocal &set /a %1=1%d2:~0,3%-1000
  29.         goto :eof
  30. )
  31. goto :eof
  32. :#Test3
  33. setlocal enabledelayedexpansion
  34. for /f "delims=" %%a in ("%2") do (
  35.         set d2=%%a000
  36.         endlocal &set /a %1=1!d2:~0,3!-1000
  37.         goto :eof
  38. )
  39. goto :eof
  40. :#Test4
  41. setlocal enabledelayedexpansion
  42. for /f "delims=" %%a in ("%2") do (
  43.         endlocal &set d2=%%a000&set /a %1=1!d2:~0,3!-1000
  44.         goto :eof
  45. )
  46. goto :eof
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2