在批处理中创建具有不同名称的新文件
creating new files with different names in Batch
在办公室,我们有一个广泛且定义明确的文件结构,我必须创建数百个名称相同但最后数字不同的目录。
目录0001
目录0002
...
directory0324
这是我所做的:
SET B=0001
SET C=0324
:while1
IF NOT %B%==%C%
(
echo "first loop"
SET COUNTER=0
IF NOT %COUNTER%=1
(
echo "Secoond loop"
mkdir "C:\pathfile\directory00"%B%
SET COUNTER==1
)
else()
SET B=%B%+1
goto :while1
)
else
(
)
我不确定我是否正确使用了运算符,我正在使用我在不同帖子中找到的内容。
-我正在使用 windows 终端调试代码,有更好的方法吗?
正好有一个 FOR 循环,将计数从一个值递增到最终值:
for /L %%i in (1,1,324) do if %%i LEQ 9 ( md "C:\pathfile\directory000%i" ) else if %%i LEQ 99 ( md "C:\pathfile\directory00%i" ) else ( md "C:\pathfile\directory0%%i" )
这将从 1 开始,递增 1,直到达到 324。 IF
语句仅用于格式化前导零。
编辑:
这是带有适当缩进的完整代码,以便您(作为新手)可以更轻松地理解流程:
@echo off
SETLOCAL ENABLEEXTENSIONS
REM enable cmd extensions so that mkdir/md will create all intermediate folders
SET first=1
SET last=324
REM numeric extension will be appended with 4 places to this foldername
SET folder=C:\users\goofy\manydirs\directory
FOR /L %%i in (%first%,1,%last%) DO (
IF %%i LEQ 9 (
mkdir %folder%000%%i
) ELSE IF %%i LEQ 99 (
mkdir %folder%00%%i
) ELSE IF %%i LEQ 999 (
mkdir %folder%0%%i
) ELSE (
mkdir %folder%%%i
)
)
在办公室,我们有一个广泛且定义明确的文件结构,我必须创建数百个名称相同但最后数字不同的目录。
目录0001
目录0002
...
directory0324
这是我所做的:
SET B=0001
SET C=0324
:while1
IF NOT %B%==%C%
(
echo "first loop"
SET COUNTER=0
IF NOT %COUNTER%=1
(
echo "Secoond loop"
mkdir "C:\pathfile\directory00"%B%
SET COUNTER==1
)
else()
SET B=%B%+1
goto :while1
)
else
(
)
我不确定我是否正确使用了运算符,我正在使用我在不同帖子中找到的内容。
-我正在使用 windows 终端调试代码,有更好的方法吗?
正好有一个 FOR 循环,将计数从一个值递增到最终值:
for /L %%i in (1,1,324) do if %%i LEQ 9 ( md "C:\pathfile\directory000%i" ) else if %%i LEQ 99 ( md "C:\pathfile\directory00%i" ) else ( md "C:\pathfile\directory0%%i" )
这将从 1 开始,递增 1,直到达到 324。 IF
语句仅用于格式化前导零。
编辑:
这是带有适当缩进的完整代码,以便您(作为新手)可以更轻松地理解流程:
@echo off
SETLOCAL ENABLEEXTENSIONS
REM enable cmd extensions so that mkdir/md will create all intermediate folders
SET first=1
SET last=324
REM numeric extension will be appended with 4 places to this foldername
SET folder=C:\users\goofy\manydirs\directory
FOR /L %%i in (%first%,1,%last%) DO (
IF %%i LEQ 9 (
mkdir %folder%000%%i
) ELSE IF %%i LEQ 99 (
mkdir %folder%00%%i
) ELSE IF %%i LEQ 999 (
mkdir %folder%0%%i
) ELSE (
mkdir %folder%%%i
)
)