| 
|  |  
| danjiang 初级用户
 
   
 
 
 
 积分 79
 发帖 45
 注册 2007-11-28
 状态 离线
 | 
| 『楼 主』:
 [已解决]批处理里面是使用变量,解析变量的问题
 
使用 LLM 解释/回答一下 
 
 
都写在rem里面了 @echo off
 Setlocal
 set _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 set _all_a=
 set _all_b=
 set _all_c=
 rem 想实现_all_a记录所有包含a的project,_all_b记录所有包含b的project,_all_c记录所有包含c的project,
 rem _all_a=_project_a1,_project_a2,_project_a4
 rem _all_b=_project_a2,_project_a3
 rem _all_c=_project_a3,_project_a4
 
 rem 不知道如何实现
 for /f %%i in ('set _project_') do call :Function1 %%i
 echo _all_a=%_all_a%
 echo _all_b=%_all_b%
 echo _all_c=%_all_c%
 endlocal
 @goto :eof
 
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :Function1
 echo %%1=%1
 @goto :eof
 
 
 Last edited by danjiang on 2011-1-8 at 11:53 ]
All are written in the rem @echo off
 Setlocal
 set _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 set _all_a=
 set _all_b=
 set _all_c=
 rem Want to implement _all_a to record all projects containing a, _all_b to record all projects containing b, _all_c to record all projects containing c,
 rem _all_a=_project_a1,_project_a2,_project_a4
 rem _all_b=_project_a2,_project_a3
 rem _all_c=_project_a3,_project_a4
 
 rem Don't know how to implement
 for /f %%i in ('set _project_') do call :Function1 %%i
 echo _all_a=%_all_a%
 echo _all_b=%_all_b%
 echo _all_c=%_all_c%
 endlocal
 @goto :eof
 
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :Function1
 echo %%1=%1
 @goto :eof
 
 
 Last edited by danjiang on 2011-1-8 at 11:53 ]
 
 
 |  |  |  2011-1-7 11:45 |  |  |  |  
| Hanyeguxing 银牌会员
 
      正在学习中的菜鸟...
 
 
 积分 1039
 发帖 897
 注册 2009-3-1
 来自 在地狱中仰望天堂
 状态 离线
 | 
| 『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
@echo off&setlocal enabledelayedexpansionset _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 for /l %%a in (1,1,4) do for %%b in (!_project_a%%a!) do if defined _all_%%b (set _all_%%b=!_all_%%b!,_project_a%%a) else set _all_%%b=_project_a%%a
 set _project_
 set _all_
 pause
 或: @echo off&setlocal enabledelayedexpansionset _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 for /f "tokens=1* delims==" %%a in ('set _project_') do for %%c in (%%b) do if defined _all_%%c (set _all_%%c=!_all_%%c!,%%a) else set _all_%%c=%%a
 set _project_
 set _all_
 pause
 
 Last edited by Hanyeguxing on 2011-1-7 at 15:11 ] 
```@echo off&setlocal enabledelayedexpansion
 set _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 for /l %%a in (1,1,4) do for %%b in (!_project_a%%a!) do if defined _all_%%b (set _all_%%b=!_all_%%b!,_project_a%%a) else set _all_%%b=_project_a%%a
 set _project_
 set _all_
 pause
 or:
 @echo off&setlocal enabledelayedexpansion
 set _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 for /f "tokens=1* delims==" %%a in ('set _project_') do for %%c in (%%b) do if defined _all_%%c (set _all_%%c=!_all_%%c!,%%a) else set _all_%%c=%%a
 set _project_
 set _all_
 pause
 
 Last edited by Hanyeguxing on 2011-1-7 at 15:11 ]
 ```
 
 
 
 
 
 
 |  
                  |  
  批处理之家 http://bbs.bathome.net/forum-5-1.html |  |  |  2011-1-7 14:52 |  |  |  |  
| danjiang 初级用户
 
   
 
 
 
 积分 79
 发帖 45
 注册 2007-11-28
 状态 离线
 |  |  |  2011-1-8 10:25 |  |  |  |  
| danjiang 初级用户
 
   
 
 
 
 积分 79
 发帖 45
 注册 2007-11-28
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
多谢,是我要的东西,第二个方法更好一些
 继续能问一下吗,能否把
 _all_a=_project_a1,_project_a2,_project_a4
 _all_b=_project_a2,_project_a3
 _all_c=_project_a3,_project_a4
 简化为
 _all_a=a1,a2,a4
 _all_b=a2,a3
 _all_c=a3,a4
 
Thanks, it's what I need, the second method is better. Can I continue to ask, can the following be simplified:
 _all_a=_project_a1,_project_a2,_project_a4
 _all_b=_project_a2,_project_a3
 _all_c=_project_a3,_project_a4
 
 to
 
 _all_a=a1,a2,a4
 _all_b=a2,a3
 _all_c=a3,a4
 
 
 
 |  |  |  2011-1-8 10:30 |  |  |  |  
| Hanyeguxing 银牌会员
 
      正在学习中的菜鸟...
 
 
 积分 1039
 发帖 897
 注册 2009-3-1
 来自 在地狱中仰望天堂
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
@echo offset _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 for /f "tokens=2* delims==_" %%a in ('set _project_') do for %%c in (%%b) do if defined _all_%%c (call set _all_%%c=%%_all_%%c%%,%%a) else set _all_%%c=%%a
 set _project_
 set _all_
 pause
 
```@echo offset _project_a1=a
 set _project_a2=a,b
 set _project_a3=b,c
 set _project_a4=c,a
 for /f "tokens=2* delims==_" %%a in ('set _project_') do for %%c in (%%b) do if defined _all_%%c (call set _all_%%c=%%_all_%%c%%,%%a) else set _all_%%c=%%a
 set _project_
 set _all_
 pause
 ```
 
 
 
 
 
 
 |  
                  |  
  批处理之家 http://bbs.bathome.net/forum-5-1.html |  |  |  2011-1-8 10:51 |  |  |  |  
| danjiang 初级用户
 
   
 
 
 
 积分 79
 发帖 45
 注册 2007-11-28
 状态 离线
 |  |  |  2011-1-8 11:02 |  |  |