2009-05-25 12 views

答えて

28

コマンド拡張機能が有効になっている場合、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スクリプトのほとんどすべての1はで始まる:

setlocal enableextensions enabledelayedexpansion 

使用したい場合は、私は

+0

あなたはこの答えが 'md'を実行するよりも優れていると説明できますか? –

+1

@notfed、何らかの理由でコマンド拡張が_disabled_された場合、mdはパス全体を作成しません。それは私が答えで与えた状況であり、一時的にそれらを有効にするためのスクリプトが必要な状況です。 – paxdiablo

19

Windowsでは、mkdirがデフォルトでディレクトリツリーを作成します。

mkdir a\b\c

+0

「mkdir」ではなく「md」を入れたいと思っています。 – Shyam

+3

'mkdir'と' md'はWindowsで同じです。 –

+6

あなたのパスにGNUWin32のものがあるのを除けば、それで、変なことに、GNU mkdirがmkdirを使用して呼び出されます(なぜ、私がフォルダツリーをそれ以上作成できなかったのかを知りたがっています...):-) – Joey

3

:-)私の最愛のbashの行動にできるだけ近づく確保するためにスラッシュをスクロールするには、二重引用符で囲む必要があるディレクトリ構造を指定します。 mkdir "org/frame/bu/fed/config"

3

私は次の方法でディレクトリを作成しようとしました。

mkdir src/main/java/main/resources 

これは機能しませんでした。次のように、パスを二重引用符で囲む必要がありました。

さらに、unixではこれが可能です。

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

ここでは、2つのブランチが以下のように作成されます。私はこれが役に立てば幸い

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

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

! xox

関連する問題