Care este echivalentul lui Linux mkdir -p în Windows? (Programare, Windows, Fișier Batch, Cmd, Mkdir)

Renjith G a intrebat.

În Linux, mkdir -p creează un arbore de dosare.

Care este opțiunea echivalentă în Windows pentru a crea un arbore de dosare? Există vreuna?

6 răspunsuri
paxdiablo

Mkdir-ul din Windows o face automat dacă sunt activate extensiile de comandă. Acestea sunt pe aproape toate boxele pe care le-am folosit vreodată, dar, dacă nu sunt, poți crea propriul script pentru a o face:

@echo off
setlocal enableextensions
md %1
endlocal

Expanding:

Extensiile de comandă sunt o caracteristică adăugată a cmd.exe care vă permite să faceți mult mai multe (cu prețul unei mici compatibilități cu încarnările anterioare ale limbajului batch).

Windows XP cmd.exe ar trebui să aibă aceste extensii activate în mod implicit, dar puteți configura caseta dvs. astfel încât să fie dezactivate în mod implicit (utilizând "cmd /e:off" ca procesor implicit). Dacă faceți acest lucru și doriți să utilizați extensiile, trebuie să vă cmd fișierele trebuie să aibă un setlocal pentru a le activa din nou.

Scriptul de mai sus ar putea fi numit md2.cmd și atunci ați avea garanția că veți putea crea mai multe niveluri de directoare cu "md2 abc" fără a trebui să vă faceți griji dacă extensiile au fost activate sau nu.

Aproape fiecare dintre cmd scripturi pe care le scriu începe cu:

setlocal enableextensions enabledelayedexpansion

pentru a mă asigura că mă apropii cât mai mult posibil de comportamentul iubitului meu bash 🙂

Comentarii

  • Puteți explica în ce fel acest răspuns este mai bun decât simpla rulare a programului md? –  > Por Jay Sullivan.
  • @notfed, dacă extensiile de comandă sunt dezactivate din anumite motive, md nu va crea întreaga cale. Aceasta este situația pe care am prezentat-o în răspuns și pentru care vei avea nevoie de un script pentru a le activa temporar. –  > Por paxdiablo.
Alan Haggai Alavi

În Windows, mkdir creează în mod implicit arbori de directoare.

mkdir abc

Comentarii

  • Cred că ai vrut să pui md și nu mkdir. –  > Por Shyam.
  • Ambele mkdir și md sunt aceleași în Windows. –  > Por Alan Haggai Alavi.
  • Cu excepția cazului în care se întâmplă să aveți niște chestii GNUWin32 care zac în calea voastră. Atunci, în mod ciudat, GNU mkdir este apelat la utilizarea mkdir (și mi-a luat ceva timp să aflu de ce nu mai pot crea arbori de dosare…) 🙂 –  > Por Joey.
Nick Ko

Dintr-un motiv ciudat, când am încercat să creez un director cu următoarea metodă;

mkdir src/main/java/main/resources 

nu a funcționat, a trebuit să înconjor calea în ghilimele duble, așa cum se arată mai jos;

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

În plus, unix permite acest lucru;

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

în cazul în care două ramuri vor fi create așa cum se arată mai jos, echivalentul acestui lucru pe Windows este;

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

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

Sper să vă fie de ajutor!xox

Comentarii

  • Ghilimelele duble au funcționat pentru mine în Windows 10 folosind ConEmu. +1! –  > Por imlouisrussell.
Anup Thakare

Dacă doriți să folosiți bariere înainte, dați structura de directoare pe care o doriți în ghilimele duble. mkdir „org/frame/bu/fed/config”

basit

mkdir face în mod implicit toate directoarele intermediare. Asigurați-vă doar că folosiți „
ca separator.

Comentarii

  • Unde este avantajul răspunsului dvs. Există deja răspunsuri (vechi de până la zece ani) cu aceleași afirmații. –  > Por jeb.
  • Nu am văzut pe nimeni să menționeze că trebuie folosită backslash pentru ca mkdir să se comporte ca ‘linux mkdir -p’ (poate pentru că se presupune), se spune doar că pe windows mkdir face directoare intermediare în mod implicit. Răspunsul meu este pentru cineva care poate a folosit ‘/’ și a văzut că nu se creează directoare. –  > Por basit.
  • Presupun că acesta este mai mult sau mai puțin răspunsul lui @AnupThakare. Când nu folosiți backslash-uri, atunci aveți nevoie de ghilimele –  > Por jeb.
Intouchsiri Suksawasdipat

Tocmai am încercat să creez mai multe dosare pe astăzi și funcționează!

mkdir "templates" "static/css" "static/js"