2016-02-10 4 views
1

Я планирую создать какой-то архив. Предположим, у меня есть эти набор папок а = {A, B, C, D} И у меня есть еще один сборник папок, таких как B = {1, 2, 3, 4}Создание набора папок внутри некоторых папок с использованием CMD

Теперь, как я могу создавать папки используя файл .bat, так что каждая папка в «a» имеет папки «b». Это означает, что каждая папка в «a» должна иметь «1, 2, 3, 4» в качестве подпапок.

Я пытался что-то сделать с помощью xcopy, но это не сработало.

ответ

2

Это работает для меня на Windows 7:

for %%a in (A,B,C,D) do (
    for %%i in (1,2,3,4) do (
     mkdir %%a\\%%i 
    ) 
) 

Чтобы ответить на ваш вопрос о более общем сценарии; поместите это в пакетный файл, такой как a.bat и запустите его.

@echo off 
rem the directory where I wish to make subdirectories 
set mypath=C:\Users\Philip\AppData\Local\Temp\Test 

rem go to that directory 
cd /d %mypath% 

rem the names of subdirectories I want to create for each directory (no outer quotes) 
set mydirs=ralph,john,sally,betty,11,22 

for /f %%a in ('dir/b/ad') do (
    for %%i in (%mydirs%) do (
     if not exist %%a\\%%i (
      mkdir %%a\\%%i 
     ) 
    ) 
) 

Если вы хотите только часть каталогов, которые вы можете изменить внешний for использовать подстановочные знаки. Например. только справочники, начинающиеся с C

for /f %%a in ('dir/b/ad C*') do (
+0

Это сработало отлично! Спасибо! Но у меня есть еще один вопрос: есть ли способ не указывать A, B, C, D? Как использовать звезду (*)? –