阅读所有目录并检查它是否符合标准

时间:2014-12-15 13:07:59

标签: batch-file

我正在寻找一些帮助。

我想读一个目录(c:\ test) 如果它们只有2位数(只有一个深度),那么所有dir都在这里,应该检查一个sub dir(temp),如果没有,那么就创建它。

所以 c:\ test \ hello ... leave(因为dir世界超过2个字符) c:\ test \ AA - 在这里检查temp - 如果不存在那么创建 c:\ test \ world ... leave(因为dir世界超过2个字符) c:\ test \ BB - 在这里检查temp - 如果不存在则创建

我尝试了多种方法但是当我尝试检查文件夹名称/字符串长度时,我似乎总是失败。

希望有人可以帮助或给我一个开始 谢谢 保罗

2 个答案:

答案 0 :(得分:0)

简单方法......

@ECHO OFF
SETLOCAL
SET "destdir=U:\destdir"
SET "alphabet=a b c d e f g h i j k l m n o p q r s t u v w x y z"
FOR %%a IN (%alphabet%) DO FOR %%b IN (%alphabet%) DO IF EXIST "%destdir%\%%a%%b\." ECHO(MD "%destdir%\%%a%%b\temp" 2>nul
GOTO :EOF

您需要更改destdir的设置以适合您的情况,并根据需要扩展分配给alphabet的字符串。

所需的MD命令仅用于ECHO用于测试目的。 在您确认命令正确之后,将ECHO(MD更改为MD以实际创建目录。附加到MD命令的2>nul会抑制错误消息(例如,当" new"目录已存在时)

答案 1 :(得分:0)

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "target=c:\test"
    >nul 2>nul (
        for /f %%a in ('
            dir /ad /b "%target%\??" ^| findstr /r /c:"^..$"
        ') do md "%target%\%%a\temp"
    )

使用dir命令检索一个或两个字符文件夹的列表。使用findstr过滤列表,仅保留包含两个字符的文件夹。对于最终列表中的每个文件夹,直接尝试创建temp文件夹。