DOS批量创建多个目录下的文件夹

Posted

技术标签:

【中文标题】DOS批量创建多个目录下的文件夹【英文标题】:DOS Batch Create Folders under multiple directories 【发布时间】:2016-03-16 10:50:58 【问题描述】:

我目前正在学习 DOS,并且正在尝试更好地组织我的一些客户端目录。我想在每个客户的文件夹下创建 5 个文件夹(2011、2012、2013、2014 和 2015),但我有很多客户,想用批处理命令来做。

这是我的目录的一个示例:

C:\Clients\Name\

这是我想做的:

C:\Clients\Name\2015

我有大约 200 个不同的客户,因此单独创建这些客户既繁琐又耗时。有没有办法写入所有“名称”文件夹,即使它们都不同?

【问题讨论】:

“我正在学习DOS” 哇,这句话让我产生了很大的怀旧感。因此,如果我是对的,您正在寻找将文件一次复制到多个目录的命令,还是要创建目录?除此之外,您运行的是 Windows 95 还是安装了 Power-shell 的某些 Windows 版本? 真的在学习“DOS”吗?还是您指的是 Windows 中的命令行?因为那是完全不同的东西 对这些 Dos 有 qbasic 吗?然后让它为您创建批处理文件。客户名称将如何显示?实名还是连号?我猜他们已经存在了? 【参考方案1】:

试试这个:

pushd C:\Clients
for /d %%d in (*) do (
    for %%i in (2011 2012 2013 2014 2015) do mkdir %%d\%%i
)
popd

【讨论】:

这在“DOS”中不起作用(尽管我很确定 Jox 指的是 Windows 命令行,而不是“DOS”)【参考方案2】:

这是一个可以解决问题的批处理文件: 您可以通过 2 种方式运行它:

将文件夹(例如C:\Clients)作为参数传递 转到文件夹 (cd C:\Clients) 并从那里运行它,不带任何参数

注意:它也适用于包含 SPACE 的文件夹,是的,这是 cmd 特定的(不是 DOS em>)

@echo off
setlocal enableextensions

if "" neq "%~1" (
    if exist "%~1\" (
        set WORK_DIR="%~1"
    ) else (
        set WORK_DIR="%CD:"=%"
    )
) else (
    set WORK_DIR="%CD:"=%"
)

for /f "tokens=*" %%f in ('dir /b /a:d %WORK_DIR%') do (
    for %%g in (2011 2012 2013 2014 2015) do (
        mkdir "%WORK_DIR:"=%\%%f\%%g"
    )
)

【讨论】:

以上是关于DOS批量创建多个目录下的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

dos 文件重命名

DOS按规则批量重命名所有(子)目录下文件

如何用bat打开本身目录下的文件?

如何在DOS下批量改后缀名

小实验-批量创建文件夹/文件并统计文件个数

Windows 还在逐个的创建文件夹? 批量创建不香吗?(.bat)