2009-05-25 10 views

Antwort

28

Der Windows mkdir tut es automatisch, wenn Befehlserweiterungen aktiviert sind. Sie sind auf fast jedem Feld die ich je benutzt habe, aber, wenn sie es nicht sind, können Sie Ihr eigenes Skript erstellen, es zu tun:

@echo off 
setlocal enableextensions 
md %1 
endlocal 

Ausbau:

Befehlserweiterungen sind ein zusätzliches Feature von cmd.exe, was Ihnen erlaubt, so viel mehr zu tun (auf Kosten von ein wenig Kompatibilität mit früheren Inkarnationen der Batch-Sprache).

Windows XP cmd.exe sollten diese Erweiterungen standardmäßig aktiviert haben, aber Sie können Ihre Box so konfigurieren, dass sie standardmäßig deaktiviert sind (unter Verwendung von "cmd /e:off" als Standardprozessor). Wenn Sie dies tun und die Erweiterungen verwenden möchten, müssen Ihre cmd Dateien über einen SetLocal verfügen, um sie wieder zu aktivieren.

Das obige Skript könnte md2.cmd genannt werden, und dann wäre es garantiert möglich, mehrere Verzeichnisebenen mit "md2 a\b\c" zu erstellen, ohne sich darum kümmern zu müssen, ob die Erweiterungen aktiviert waren.

Fast jeder der cmd Skripte Ich schreibe beginnt mit:

setlocal enableextensions enabledelayedexpansion 

, um sicherzustellen, ich so nah wie möglich zu bekommen, um das Verhalten meines geliebten bash :-)

+0

Können Sie erklären, wie diese Antwort besser ist als nur 'md' zu laufen? –

+1

@notfed, wenn die Befehlserweiterungen aus irgendeinem Grund _disabled_ sind, erstellt md nicht den gesamten Pfad. Das ist die Situation, die ich in der Antwort angegeben habe und für die Sie ein Skript benötigen, um sie vorübergehend zu aktivieren. – paxdiablo

19

In Windows erstellt mkdir standardmäßig Verzeichnisbäume.

mkdir a\b\c

+0

Ich denke, Sie wollten 'md' und nicht' mkdir' setzen. – Shyam

+3

Sowohl "mkdir" als auch "md" sind in Windows identisch. –

+6

Außer du hast zufällig etwas GNUWin32-Zeug in deinem Weg herumliegen.Dann wird das GNU-mkdir mit mkdir aufgerufen (und ich brauchte eine Weile, um herauszufinden, warum ich keine Ordnerbäume mehr erstellen konnte ...) :-) – Joey

3

Wenn Sie verwenden möchten, Vorwärts Schrägstriche, geben Sie einfach die Verzeichnisstruktur in Anführungszeichen. mkdir "org/frame/bu/fed/config"

3

Aus einem seltsamen Grund, als ich versuchte, ein Verzeichnis mit der folgenden Methode zu erstellen;

es hat nicht funktioniert, ich musste den Pfad in Anführungszeichen umgeben, wie unten gezeigt;

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

Darüber hinaus ermöglicht Unix dies;

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

wo zwei Zweige erstellt werden, wie unten gezeigt, das Äquivalent zu dem auf Windows ist;

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

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

Ich hoffe, das hilft! xox