当我在批处理文件中运行它时:
for /d %%i in ("%SystemDrive%\Users\*") do (
set myvar=%%i\apple
set myvar=%myvar%\orange
)
我的输出如下:
set myvar=C:\Users\Joe\apple
set myvar=\orange
set myvar=C:\Users\Bob\apple
set myvar=\orange
...
我希望看到set myvar=C:\Users\Joe\apple\orange
。为什么myvar
似乎有一个空值,即使你可以看到它被设置为一个?
答案 0 :(得分:0)
根据评论,这会产生预期结果:
setlocal ENABLEDELAYEDEXPANSION
for /d %%i in ("%SystemDrive%\Users\*") do (
set myvar=%%i\apple
set myvar=!myvar!\orange
)
答案 1 :(得分:0)
另一种解决方案是使用call
。例如:
for /d %%i in ("%SystemDrive%\Users\*") do call :MyFunction
exit
:MyFunction
set myvar=%%i\apple
set myvar=%myvar%\orange