Batch file 如何使用批处理文件在特定子目录中创建新文件夹,具体取决于子目录的名称
我有一个包含多个子目录和子目录的目录: 目录/子目录/子目录 其中一些子目录称为“name”,其他子目录则不是。在“name”目录中,我想创建一个新的目录,它总是相同的。 我在主目录中的批处理文件中编写了此代码:Batch file 如何使用批处理文件在特定子目录中创建新文件夹,具体取决于子目录的名称,batch-file,windows-xp,Batch File,Windows Xp,我有一个包含多个子目录和子目录的目录: 目录/子目录/子目录 其中一些子目录称为“name”,其他子目录则不是。在“name”目录中,我想创建一个新的目录,它总是相同的。 我在主目录中的批处理文件中编写了此代码: @echo off for /r %%i in (*) do ( if "%%~ni" == Flank do( mkdir %%i\Diffractometry mkdir %%i\Diffractometry\0 mkdir
@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
)
)
然而,这段代码在所有地方创建衍射文件夹,而不仅仅是在名为“侧翼”的子目录中
你知道我能做些什么来解决这个问题吗?发现两个错误:
@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
)
)
你可以用
for/r%%i in(*)do(
如果“%%~ni”=“侧面”(
mkdir%%i\衍射法\0
mkdir%%i\衍射测定法\6.5
mkdir%%i\衍射法\11
)
)
或
用于/r%%i英寸(侧面)(
如果存在(0 6.5 11)中%%a的“%%~fi\”,则执行md“%%~fi\衍射测定\%a”
)
无论如何
命令需要for
子句,但do
命令不使用它if
- 比较字符串值时,操作中包含引号,因此比较的两侧都应包含引号,否则值将不匹配
- 使用
或mkdir
命令可以创建完整的指示层次结构,您可以直接创建更深的子文件夹,并在需要时生成所有父文件夹md