批处理脚本嵌套for循环创建目录结构异常求助
批处理创建嵌套目录结构的问题修复
问题原因
原代码中用cd.试图返回上级目录,但cd.的实际作用是刷新当前目录,根本不会切换到上级目录。这导致第一次进入A目录后,后续的md B、cd B全在A目录下执行,最终生成了错误的嵌套结构。
修正后的代码
方法1:替换cd.为cd..
直接用正确的上级目录切换命令:
@echo off md test cd test for %%F in (A B C) do ( md %%F cd %%F for %%E in (A B C) do ( md %%E ) cd.. ) pause
方法2:用pushd+popd更稳妥
pushd会自动保存当前目录并切换到目标目录,popd直接恢复到之前的目录,完全避免手动切换出错:
@echo off md test cd test for %%F in (A B C) do ( md %%F pushd %%F for %%E in (A B C) do ( md %%E ) popd ) pause
执行效果
修正后会生成预期的目录结构:
TEST---├-A │ ├A │ ├B │ └C ├-B │ ├A │ ├B │ └C └-C ├A ├B └C
内容的提问来源于stack exchange,提问作者Lxodles
相关产品推荐
相关产品推荐

