我有一个包含多个子和子子目录的目录: 目录/子目录/ subsubdirectory
其中一些子目录被称为" name",其他不是。在"名称"目录,我想创建一个新目录,它始终是相同的。 我已将此代码写入放在主目录中的批处理文件中:
@echo off
for /r %%i in (*) do (
if "%%~ni" == Flank do(
mkdir %%i\Diffractometry
mkdir %%i\Diffractometry\0
mkdir %%i\Diffractometry\6.5
mkdir %%i\Diffractometry\11
)
)
但是,此代码在任何地方创建Diffractometry文件夹,而不仅仅是在名为" Flank"的子目录中。
你知道我能做些什么来解决这个问题吗?
答案 0 :(得分:0)
发现两个错误:
@echo off
for /r %%i in (*) do (
if "%%~ni" == "Flank" (
rem ^ ^ quotes and invalid `do` in `if`
mkdir %%i\Diffractometry
mkdir %%i\Diffractometry\0
mkdir %%i\Diffractometry\6.5
mkdir %%i\Diffractometry\11
)
)
答案 1 :(得分:0)
您可以使用
for /r %%i in (*) do (
if "%%~ni"=="Flank" (
mkdir %%i\Diffractometry\0
mkdir %%i\Diffractometry\6.5
mkdir %%i\Diffractometry\11
)
)
或
for /r %%i in (Flank) (
if exist "%%~fi\" for %%a in (0 6.5 11) do md "%%~fi\Diffractometry\%%a"
)
无论如何
for
命令需要do
子句,但if
命令不使用它。
比较字符串值时,引号包含在操作中,因此比较的两边应包含引号,否则值将不匹配。
mkdir
或md
命令创建完整指示的层次结构,您可以直接创建更深层的子文件夹,并在需要时生成所有父项。