2013-07-30 176 views
0

我目前正在尝试使用批处理文件创建具有子文件夹的文件夹 - 我使用下面的代码,但它不工作 - txt文件有一个主文件夹列表,然后其他行是应该在每个文件夹中创建的子文件夹。创建批处理文件夹和子文件夹

@echo off 
for /F "tokens=*" %%* in (jobid.txt) 
do(mkdir 
"C:\joblist\%%*" 
"C:\joblist\%%*\Loss Sheet" 
"C:\joblist\%%*\Authorization" 
"C:\joblist\%%*\Certificate of Satisfaction" 
"C:\joblist\%%*\Drying Lobs-Outlines" 
"C:\joblist\%%*\Lead Documentation" 
"C:\joblist\%%*\Photos" 
"C:\joblist\%%*\Waiver of Liability" 
"C:\joblist\%%*\Mold Reports-Documentation" 
"C:\joblist\%%*\Bank-Mortgage Doc" 
"C:\joblist\%%*\Invoice" 
"C:\joblist\%%*\Payment-Checks" 
"C:\joblist\%%*\Job Costs-Vendors" 
"C:\joblist\%%*\Emails" 
"C:\joblist\%%*\Notes" 
) 

当我运行该批处理文件没有任何反应,并没有文件夹创建

回答

2

试试这个:

@ECHO OFF &SETLOCAL 
for /F "delims=" %%a in (jobid.txt) DO (
    FOR %%x IN (
    "C:\joblist\%%a" 
    "C:\joblist\%%a\Loss Sheet" 
    "C:\joblist\%%a\Authorization" 
    "C:\joblist\%%a\Certificate of Satisfaction" 
    "C:\joblist\%%a\Drying Lobs-Outlines" 
    "C:\joblist\%%a\Lead Documentation" 
    "C:\joblist\%%a\Photos" 
    "C:\joblist\%%a\Waiver of Liability" 
    "C:\joblist\%%a\Mold Reports-Documentation" 
    "C:\joblist\%%a\Bank-Mortgage Doc" 
    "C:\joblist\%%a\Invoice" 
    "C:\joblist\%%a\Payment-Checks" 
    "C:\joblist\%%a\Job Costs-Vendors" 
    "C:\joblist\%%a\Emails" 
    "C:\joblist\%%a\Notes" 
    ) DO (
    ECHO MD "%%~x" 
    ) 
) 

查看输出并在MD之前删除单词echo(如果它看起来不错)。

Tihs是一个很好的问题,我喜欢它。

+0

出于好奇,为什么在不需要时抛出第二个循环和变量? –

+0

感谢您的帮助 – user2149913

0

我不认为你了解使用循环变量在你for*在命令窗口(DOS框)中有特殊含义;这是一个通配符。您还需要为每个文件夹重复命令mkdir,而不仅仅是第一个文件夹。

尝试使用一个实际的变量名来代替:

@echo off 
for /F "tokens=*" %%i in (jobid.txt) do (
    mkdir "C:\joblist\%%*" 
    mkdir "C:\joblist\%%*\Loss Sheet" 
    mkdir "C:\joblist\%%*\Authorization" 
    mkdir "C:\joblist\%%*\Certificate of Satisfaction" 
    mkdir "C:\joblist\%%*\Drying Lobs-Outlines" 
    mkdir "C:\joblist\%%*\Lead Documentation" 
    mkdir "C:\joblist\%%*\Photos" 
    mkdir "C:\joblist\%%*\Waiver of Liability" 
    mkdir "C:\joblist\%%*\Mold Reports-Documentation" 
    mkdir "C:\joblist\%%*\Bank-Mortgage Doc" 
    mkdir "C:\joblist\%%*\Invoice" 
    mkdir "C:\joblist\%%*\Payment-Checks" 
    mkdir "C:\joblist\%%*\Job Costs-Vendors" 
    mkdir "C:\joblist\%%*\Emails" 
    mkdir "C:\joblist\%%*\Notes" 
) 

(正如一个音符,mdmkdir简写,这样你就可以md而不是更换所有的mkdir命令来保存每线三条按键。无论哪种方式同样工作,以及较长的名称可能以供将来参考更清晰)

相关问题