/r在2次嵌套的时候(/r作为子循环时),经常会出问题,有时出错、有时会对一个值递归2次(至今不明白是为什么),所以如果是嵌套,最好用/f参数代替/r参数。
例如:
@echo off
for /d %%i in (*) do (
echo D:\dx\%%i
for /f "delims=" %%b in ('dir /s /b "D:\dx\%%i\*.*"') do echo %%b
)
pause
参考代码如下:
#include
int main()
{
int i =1,j=1;
for(i=1;i<10;i++)
{
for(j=1;j {
printf("%d*%d=%d\t",j,i,i*j);
}
//一般来说,从外循环for赋值一次,到内循环for循环一遍。只是你这个比较特殊,内循环一次而已。
printf("\n");
}
return 0;
}
其实可以实现你想要的结果,就是在for /d里调用子程序具体如下
for /d %%i in (*) do (
call :sub %%i
)
:sub
for /r %1 %%b in (*.*) do echo %%b
goto :eof