在“for”中保存变量

时间:2014-10-01 13:44:46

标签: windows variables batch-file dos

关于Windows批处理文件:有没有办法让变量的所有路径都通向我的文件夹“src”,然后是* .cc,当我打印它时,它应该是这样的:

path1\src\*.cc path2\src\*.cc etc.

我发现了这个:

for /d /r . %%g in (src) do echo %%g

但打印

path1\src
path2\src
etc.

在标准输出上,因为echo %%g

修改

我需要将结果放在变量中,而不是在屏幕上打印(std out)。它必须是path_to_folder1\*.cc path_to_folder2\*.cc [...]

有可能吗?

编辑2

我实际上使用以下代码:

setlocal enabledelayedexpansion
for /d /r c:\ %%g in (Desktop*) do (
    set APLLIS_SRC= !APPLIS_SRC! %%g\*.cc
)
endlocal

如果我在for echo path: !APPLIS_SRC!

中做了这个,那就给我这个
path:
path:
[...]
Press any key to continue...

所以我的变量是空的...... 为什么?

操作系统:Windows Server 2008 SP2

2 个答案:

答案 0 :(得分:0)

这将列出文件:将%%g更改为%g以在cmd提示符处使用它。

for /r %%g in (src\*.cc) do echo "%%g"

答案 1 :(得分:0)

setlocal enabledelayedexpansion
set "myvar="
for /d /r . %%g in (src) do set "myvar=!myvar! %%g"

echo %myvar%
echo %myvar:~1%

(未测试的)

请注意,'myvar'将包含一个前导空格。