根据列表在批处理文件中创建目录

时间:2014-05-02 20:45:58

标签: batch-file

我正在尝试创建一个批处理文件,该文件将为多个名称创建目录。

这就是我要做的事情:

姓名列表:

Bob
Billy
Joe
Sue
Clide
SET Year=2014
SET Month=05

FOR (1 to Names)
SET Name = FOR ( Names )
MKDIR %Name%\%Year%\%Month%

除了我不知道如何做到这一点。有谁知道如何使用批处理文件循环名称或一般列表?

2 个答案:

答案 0 :(得分:1)

考虑到Names存储在单独的文件names.txt中,您可以尝试如下

@echo off
SET Year=2014
SET Month=05
for /F %%a IN (names.txt) DO mkdir %%a%Year%%Month%

这将导致名称如下所示的文件夹

Billy201405  
Bob201405  
Clide201405 
Joe201405   
Sue201405

修改

如果您决定将名称存储在变量中,那么您可以这样做

@echo off    
set "names=Bob Billy Joe Sue Clide"
SET Year=2014
SET Month=05
for %%s in (%names%) DO mkdir %%s%Year%%Month%

最终编辑:

不确定但如果您正在寻找像Bob\2014\05这样的层次结构中创建文件夹,那么下面的代码就可以了

@echo off    
SET Year=2014
SET Month=05
for /f %%s in (names.txt) do mkdir "%%~s\%Year%\%Month%"

<强> EDIT_10th_MAY:

考虑到您的文件包含带有如下空格的名称

Bob Johnson
Billy Cheng
Joe Watson
Sue Me
Clide Wilsen

您可以使用以下代码块

@echo off    
SET Year=2014
SET Month=05
for /f "tokens=* usebackq" %%s in (names.txt) do mkdir "%%~s\%Year%\%Month%"

将创建如下文件夹

Billy Cheng\2014\05
Bob Johnson\2014\05
Clide Wilsen\2014\05
Joe Watson\2014\05
Sue Me\2014\05

答案 1 :(得分:0)

这应该可靠地在当前目录中创建文件夹树:

@echo off
SET Year=2014
SET Month=05
for /F "usebackq delims=" %%a IN ("names.txt") DO md "%%a\%Year%\%Month%"