【问题标题】:creating folder and subfolder with batch使用批处理创建文件夹和子文件夹
【发布时间】:2013-07-30 16:10:13
【问题描述】:

我目前正在尝试使用批处理文件创建带有子文件夹的文件夹 - 我使用了下面的代码,但它不起作用 - 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"
)

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

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    试试这个:

    @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

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

    【讨论】:

    • 只是出于好奇,为什么在不需要它们的时候还要加入第二个循环和变量?
    【解决方案2】:

    我认为您不了解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 的简写,因此您可以将所有mkdir 命令替换为md,以每行节省三个击键。两种方式的工作方式相同,并且更长名称可能更清楚以供将来参考。)

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 2021-05-03
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多