什么相当于Windows中的Linux mkdir -p?

Ren*_*h G 42 windows cmd batch-file mkdir

在Linux中,mkdir -p创建一个文件夹树.

Windows中创建文件夹树的等效选项是什么?有没有?

pax*_*blo 43

如果启用了命令扩展,Windows mkdir会自动执行此操作.它们几乎放在我用过的每一个盒子上,但如果它们不是,你可以创建自己的脚本来完成它:

@echo off
setlocal enableextensions
md %1
endlocal
Run Code Online (Sandbox Code Playgroud)

拓展:

命令扩展是cmd.exe的一个附加功能,它允许您执行更多操作(代价是与批处理语言的早期版本稍微兼容).

Windows XP cmd.exe默认情况下应启用这些扩展,但您可以配置您的框,以便默认情况下禁用它们(使用"cmd /e:off"默认处理器).如果您这样做并希望使用扩展名,则您的cmd文件必须具有setlocal才能重新启用它们.

上面的脚本可以被称为md2.cmd,然后你可以保证能够创建多个目录级别,"md2 a\b\c"而不必担心是否启用了扩展.

cmd我写的几乎每一个脚本都以:

setlocal enableextensions enabledelayedexpansion
Run Code Online (Sandbox Code Playgroud)

确保我尽可能接近我心爱的人的行为bash:-)

  • @notfed,如果命令扩展出于某种原因被 _disabled_,md 将不会创建整个路径。这就是我在答案中给出的情况,也是您需要脚本来临时启用它们的情况。 (2认同)

Ala*_*avi 35

在Windows中,mkdir默认情况下创建目录树.

mkdir a\b\c

  • 除了你的路径中碰巧有一些GNUWin32的东西.然后,奇怪的是,使用mkdir调用GNU mkdir(我花了一些时间才找出为什么我不能再创建文件夹树了...):-) (12认同)
  • `mkdir`和`md`在Windows中都是相同的. (5认同)
  • 我想你想放 `md` 而不是 `mkdir`。 (2认同)

Nic*_* Ko 9

我尝试使用以下方法创建目录时出于一个奇怪的原因;

mkdir src/main/java/main/resources 
Run Code Online (Sandbox Code Playgroud)

它不起作用,我不得不用双引号括起来,如下图所示;

mkdir "src/main/java/main/resources"
Run Code Online (Sandbox Code Playgroud)

另外,unix允许这样做;

mkdir -p src/main/java src/main/resources
Run Code Online (Sandbox Code Playgroud)

如下所示,将创建两个分支,相当于windows上的分支;

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

src
-----java
-------resources
-----main
-------resources
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!XOX

  • 双引号在 Windows 10 中使用 ConEmu 对我有用。+1! (3认同)

小智 6

如果你想使用正斜杠,只需在双引号内给出你想要的目录结构。mkdir "org/frame/bu/fed/config"


小智 5

mkdir 默认创建所有中间目录。只需确保使用 '\' 作为分隔符。

  • 你的回答的好处在哪里。已经有相同陈述的答案(最多十年)。 (2认同)