1

Я хотел бы создать один и тот же подкаталог в каждом каталоге папки. Я нашел ответ здесь:

Добавить новую папку в каждую подпапку

Командная строка была:

FOR /d %A IN (e:\donuts\*) DO mkdir "%A\big"

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

Какой вариант я могу использовать, чтобы учесть, что в моих каталогах есть запятые и пробелы в именах?

1 ответ1

0

Вы можете использовать PowerShell!

Запустите эту команду PowerShell, когда вы находитесь в папке, подпапки которой должны быть добавлены новые папки:

dir | ? {$_.PSIsContainer} | % {md ($_.FullName + '\New folder')}

Это перечисляет записи в текущей папке (с dir , псевдонимом для Get-ChildItem), затем фильтрует их (?) вплоть до тех, которые являются папками. Для каждой найденной папки создается новая папка (md) с полным путем в качестве пути к найденной подпапке плюс константная строка, в данном случае \New folder , но вы можете установить ее как хотите, включая вещи, которые имеют пробелы и запятые.

В PowerShell 3 и более поздних версиях это может быть сведено к следующему:

dir -Directory | % {md ($_.FullName + '\New folder')}

Здесь dir принимает необязательный флаг -Directory для получения только папок.

Чтобы вызвать эту команду из пакетного скрипта:

powershell -Command "dir | ? {$_.PSIsContainer} | % {md ($_.FullName + '\New folder')}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .