Что эквивалентно Linux mkdir -p в Windows? - PullRequest
34 голосов
/ 25 мая 2009

В Linux mkdir -p создает дерево папок.

Каков эквивалентный вариант в Windows для создания дерева папок? Есть ли?

Ответы [ 5 ]

39 голосов
/ 25 мая 2009

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

@echo off
setlocal enableextensions
md %1
endlocal

Расширение:

Расширения команд - это дополнительная функция cmd.exe, которая позволяет вам делать гораздо больше (за счет небольшой совместимости с более ранними воплощениями языка пакетной обработки).

В Windows XP cmd.exe эти расширения должны быть включены по умолчанию, но вы можете настроить свои блоки так, чтобы они были отключены по умолчанию (используя "cmd /e:off" в качестве процессора по умолчанию). Если вы делаете это и хотите использовать расширения, ваши файлы cmd должны иметь setlocal, чтобы включить их снова.

Сценарий, приведенный выше, может называться md2.cmd, и тогда вы гарантированно сможете создавать несколько уровней каталогов с помощью "md2 a\b\c", не беспокоясь о том, были ли включены расширения.

Почти каждый из cmd сценариев, которые я пишу, начинается с:

setlocal enableextensions enabledelayedexpansion

чтобы я как можно ближе подошел к поведению моей любимой bash: -)

32 голосов
/ 25 мая 2009

В Windows mkdir по умолчанию создает деревья каталогов.

mkdir a\b\c

8 голосов
/ 29 августа 2016

По странной причине, когда я пытался создать каталог с помощью следующего метода:

mkdir src/main/java/main/resources 

это не сработало, мне пришлось заключить путь в двойные кавычки, как показано ниже;

mkdir "src/main/java/main/resources"

Кроме того, Unix допускает это;

mkdir -p src/main/java src/main/resources

, где будут созданы две ветви, как показано ниже, эквивалентно тому, что в окнах:

mkdir "src/java/resources" "src/main/resources"

src
-----java
-------resources
-----main
-------resources

Надеюсь, это поможет! XoX

4 голосов
/ 04 августа 2016

Если вы хотите использовать прямую косую черту, просто укажите необходимую структуру каталогов в двойных кавычках. mkdir "org / frame / bu / fed / config"

0 голосов
/ 16 июня 2019

mkdir по умолчанию создает все промежуточные каталоги. Просто убедитесь, что вы используете '\' в качестве разделителя.

...