【问题标题】:DOS Batch Create Folders under multiple directoriesDOS批量创建多个目录下的文件夹
【发布时间】: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 吗?然后让它为您创建批处理文件。客户名称将如何显示?实名还是连号?我猜他们已经存在了?

标签: batch-file dos


【解决方案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"
    )
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多