2014-12-15 1 views
0

Я искал некоторую помощь.Читать все каталоги и проверить, соответствует ли это критериям

Я хочу прочитать файл dir (c: \ test) и все директории здесь, если они всего 2 цифры (только одна глубокая), должны быть проверены для sub dir (temp), а если нет, то создайте его ,

Так C: \ Test \ привет ... оставить (как дир мир более 2-х символов) C: \ Test \ AA - здесь проверить темп - если нет, то создать C: \ тест \ world ... leave (as dir world больше 2 символов) c: \ test \ BB - здесь проверьте temp - если нет, тогда создайте

Я пробовал несколько способов, но я всегда схожу с ошибкой когда я пытаюсь проверить имя папки/длину строки.

Надежда кто-то может помочь или дать мне старт Thanks Пол

ответ

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 ed для целей тестирования. После того, как вы подтвердили правильность команд, измените ECHO(MD на MD, чтобы создать каталоги. 2>nul добавляется к команде MD подавляет сообщения об ошибках (например, когда «новый» каталог уже существует)

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.

Смежные вопросы