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

Batch file DOS批量创建多个目录下的文件夹,batch-file,dos,Batch File,Dos,我目前正在学习DOS,并试图更好地组织一些客户端目录。我想在每个客户的文件夹下创建5个文件夹(2011、2012、2013、2014和2015),但我有很多客户,我想使用批处理命令来创建 下面是我现在的目录示例: C:\Clients\Name\ 以下是我想做的: C:\Clients\Name\2015 我有大约200个不同的客户机,因此单独创建这些客户机将是乏味和耗时的。是否有一种方法可以写入所有“名称”文件夹,即使它们都不同?尝试以下方法: pushd C:\Clients for /d

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

下面是我现在的目录示例:

C:\Clients\Name\

以下是我想做的:

C:\Clients\Name\2015

我有大约200个不同的客户机,因此单独创建这些客户机将是乏味和耗时的。是否有一种方法可以写入所有“名称”文件夹,即使它们都不同?

尝试以下方法:

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

下面是一个批处理文件,可以实现以下功能: 您可以通过两种方式运行它:

  • 将文件夹(例如C:\Clients)作为参数传递
  • 转到文件夹(
    cd C:\Clients
    )并从那里运行它,不带任何参数
注意:它也适用于包含空格s的文件夹,是的,这是特定于cmd的(不是DOS)


“我正在学习DOS”哇,这句话让我产生了一些强烈的怀旧情绪。因此,如果我是对的,您正在寻找一个命令,将一个文件同时复制到多个目录,还是要创建目录?除此之外,你是在运行Windows 95还是安装了Powershell的Windows版本?你真的在学习“DOS”吗?还是指Windows中的命令行?因为这是完全不同的qbasic和这些Dos?然后让它为您创建批处理文件。客户机名称会是什么样子?实名还是连续数字?我想它们已经存在了?这在“DOS”中不起作用(尽管我很确定Jox指的是Windows命令行,而不是“DOS”)
@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"
    )
)