2009-05-25 24 views

Respuesta

28

El mkdir de Windows lo hace automáticamente si están habilitadas las extensiones de comando. Ellos están en casi todas las cajas que he usado, pero, si no lo son, puede crear su propia secuencia de comandos para hacerlo:

@echo off 
setlocal enableextensions 
md %1 
endlocal 

Ampliación:

extensiones de comando están una característica adicional de cmd.exe que le permite hacer mucho más (a costa de un poco de compatibilidad con encarnaciones anteriores del lenguaje por lotes).

Windows XP cmd.exe debe tener estas extensiones habilitadas de forma predeterminada, pero puede configurar su cuadro para que estén deshabilitadas de forma predeterminada (utilizando "cmd /e:off" como procesador predeterminado). Si lo hace y desea usar las extensiones, sus archivos cmd deben tener un setlocal para volverlos a activar.

La secuencia de comandos anterior se podría llamar md2.cmd y entonces se podría garantizar la capacidad de crear múltiples niveles de directorios con "md2 a\b\c" sin tener que preocuparse de si las extensiones están habilitadas.

Casi cada uno de los guiones que escribo cmd comienza con:

setlocal enableextensions enabledelayedexpansion 

para asegurar llegue lo más cerca posible al comportamiento de mi amado bash :-)

+0

¿Puedes explicar cómo esta respuesta es mejor que solo ejecutar 'md'? –

+1

@notfed, si las extensiones de comando están _deshabilitadas_ por alguna razón, md no creará la ruta completa. Esa es la situación que he dado en la respuesta, y para la que necesitarás un script, para habilitarlos temporalmente. – paxdiablo

19

En Windows, mkdir crea árboles de directorios de forma predeterminada.

mkdir a\b\c

+0

Creo que querías poner 'md' y no' mkdir'. – Shyam

+3

Ambos 'mkdir' y' md' son los mismos en Windows. –

+6

Excepto que tienes algunas cosas de GNUWin32 en tu camino.Entonces, extrañamente, se recurre al mkdir de GNU usando mkdir (y me tomó un tiempo averiguar por qué no podía crear árboles de carpetas más ...) :-) – Joey

3

Si desea utilizar barras diagonales, simplemente proporcione la estructura de directorios que desee entre comillas dobles. mkdir "org/frame/bu/fed/config"

3

Por alguna extraña razón cuando intenté crear un directorio con el siguiente método;

mkdir src/main/java/main/resources 

no funcionó, tuve que rodear la ruta entre comillas dobles, como se muestra a continuación;

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

Además, unix permite esto;

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

donde se crearán dos ramas como se muestra a continuación, el equivalente al de Windows;

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

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

espero que esto ayude! xox