PowerShell Opprett mappe hvis den ikke eksisterer

Powershell Opprett Mappe Hvis Den Ikke Eksisterer



Har du en haug med mapper og vil opprette en ny, men vet ikke om den allerede eksisterer eller ikke? Denne prosessen kan ta mye tid fordi først vil du søke etter den mappen, enten den eksisterer eller ikke, og deretter opprette den hvis den ikke eksisterer.

Overraskende nok kan PowerShell spare deg for mye tid og krefter hvis du kan litt skripting.







Vent litt! Du trenger ikke å lære hele skriptingen for den oppgaven. Fordi jeg har gitt fem metoder for å lage en mappe hvis den ikke eksisterer med en riktig forklaring av hver kommando som brukes i den.



Rask oversikt:



Før vi går mot skript, la oss lære hvordan du sjekker om en mappe eksisterer eller ikke, og deretter til en metode for å opprette en mappe i PowerShell.





Sjekk om mappen allerede eksisterer i PowerShell

De Test-Path kommandoen brukes til å sjekke om mappen allerede eksisterer i PowerShell. For å sjekke om mappen eksisterer, spesifiseres mappebanen til Test-Path-kommandoen ved å bruke -Sti parameter. Til gjengjeld returnerer kommandoen Test-Path ekte verdi hvis den eksisterer, og Falsk hvis det ikke finnes.

La oss for eksempel sjekke om den angitte mappen eksisterer eller ikke bruker Test-Path kommando:



Test-Path -Sti 'C:\Document'

For å kontrollere eksistensen av mappen, spesifiser først Test-Path kommandoen og oppgi mappebanen ved å bruke -Sti parameter:

Utgangen er Falsk fordi den angitte mappen ikke eksisterer.

Opprett en ny mappe i PowerShell

De Ny gjenstand kommandoen oppretter en ny mappe i PowerShell. For å opprette en katalog, oppgi katalogbanen til New-Item-kommandoen ved å bruke -Sti parameter. Viktigst av alt, bruk -Elementtype parameter for å opprette en mappe og spesifisere Katalog verdi. Hvis du ikke angir parameteren -ItemType og Directory-verdien, vil kommandoen New-Item opprette en fil i stedet for en mappe.

La oss for eksempel opprette en ny mappe ved å bruke Ny gjenstand kommando i PowerShell:

Ny gjenstand -Sti 'C:\Document' -Elementtype Katalog

Slik oppretter du en ny mappe:

  • Først bruker du Ny gjenstand kommandoen og spesifiser mappebanen som skal opprettes til -Sti parameter.
  • Etter det, spesifiser Katalog verdi til -Elementtype parameter for å fortelle konsollen om å opprette en mappe i stedet for en fil:

Den nye mappen er opprettet og opprettelsestiden er også synlig i utdataene ovenfor.

Opprett en mappe hvis den ikke eksisterer i PowerShell

Fra spørringen kan det observeres at det kommer til å være en hvis-annet scenario, som sier at hvis mappen ikke eksisterer, må du opprette en ny mappe. Det er fem metoder for å opprette en mappe hvis den ikke eksisterer i PowerShell, og hver metode involverer if-else-betingelsen.

Rask løsning

Her er den raske løsningen for å opprette en mappe hvis den ikke finnes i PowerShell-konsollen:

hvis ( -ikke ( Test-Path -Sti 'C:\NewFolder' ) ) { Ny gjenstand -Sti 'C:\NewFolder' -Elementtype Katalog }

Den angitte katalogen eksisterer ikke, og derfor opprettes den.

1. Opprett mappe hvis den ikke eksisterer i PowerShell ved å bruke Test-Path

De Test-Path kommandoen sjekker eksistensen av mappen og forteller konsollen om den eksisterer eller ikke. Kommandoen Test-Path og New-Item sammen med Hvis annet condition hjelp til å opprette en mappe hvis den ikke finnes i PowerShell.

La oss for eksempel observere denne koden for å lage en mappe hvis den ikke eksisterer ved å bruke Test-Path-kommandoen:

hvis ( Test-Path -Sti 'C:\NewFolder' ) {

Skrive-vert 'Spesifisert mappe finnes allerede'
}
ellers
{
Ny gjenstand -Sti 'C:\NewFolder' -Elementtype Katalog
}

For å opprette en mappe ved hjelp av Test-Path og Ny gjenstand kommando:

  • Først opprettet vi en Hvis tilstand, hvor vi brukte Test-Path kommandoen og spesifiserte mappen ved hjelp av -Sti for å sjekke at mapper eksisterer.
  • Hvis den angitte mappen eksisterer, vil meldingen vises ved hjelp av Skrive-vert kommandoen som sier at mappen allerede eksisterer, og at skriptet slutter her.
  • Ellers vil programmet gå til neste seksjon.
  • I den andre tilstanden brukte vi Ny gjenstand kommandoen og spesifiserte mappebanen som skal opprettes.
  • For å forklare tydeligere konsollen som lager en mappe, brukte vi -Elementtype eiendom og spesifiserte verdien Katalog :

Produksjon: Mappen eksisterer ikke, og derfor opprettes en ny mappe i den angitte katalogen.

2. Opprett mappe hvis den ikke finnes i PowerShell ved å bruke Get-Item

De Get-Item kommandoen henter filen eller mappen fra det angitte stedet. Kommandoen Get-Item kan også sjekke eksistensen av mappen ved å bruke if-betingelsen.

Slik kan du opprette en mappe hvis den ikke eksisterer i PowerShell ved å bruke Get-Item-kommandoen:

hvis ( Get-Item -Sti 'C:\Document' -Feilhandling Overse ) {
Skrive-vert 'Filen finnes allerede'
}
ellers {
Ny gjenstand - Uttalt 'C:\Document' -Elementtype Katalog
}

For å opprette en mappe hvis den ikke eksisterer, bruk Get-Item kommando:

  • Først oppretter du en Hvis tilstand, hvor bruk Get-Item kommandoen og spesifiser mappebanen ved å bruke -Sti parameter for å sjekke om den allerede eksisterer eller ikke.
  • Bruk også -Feilhandling parameter og spesifiser Overse verdi for å ignorere feil som kan oppstå under kjøring av kode.
  • Hvis mappen allerede eksisterer, vil konsollen vise meldingen som sier at mappen allerede eksisterer ved hjelp av Skrive-vert kommando.
  • Hvis mappen ikke eksisterer, vil programmet flytte til den andre tilstanden der den nye mappen vil bli opprettet.
  • I den andre tilstanden, bruk Ny gjenstand kommandoen, spesifiser mappebanen som skal opprettes, og bruk -Elementtype parameter som har verdien Katalog spesifisert til det.
  • Ved siden av den, spesifiser -ordlig parameter for å få mer detaljert utdata:

Skjermbildet bekrefter at den angitte mappen ikke eksisterer, og derfor ble ny mappe opprettet.

3. Opprett mappe hvis den ikke finnes i PowerShell ved å bruke Get-ChildItem

De Get-ChildItem kommandoen henter filene eller mappene fra den gitte katalogen. Den kan brukes med New-Item-kommandoen og If-else-betingelsen for å opprette en mappe hvis den ikke eksisterer i PowerShell.

Her er eksempelkoden for å lage en mappe hvis den ikke eksisterer ved hjelp av kommandoen Get-ChildItem:

hvis ( Get-ChildItem -Sti 'C:\Document' -Feilhandling Overse )
{
Skrive-vert 'Mappen finnes allerede'
}
ellers
{
Ny gjenstand 'C:\Document' -Elementtype Katalog
}

Merk: Kodeforklaringen for kodebiten ovenfor er den samme som for Get-Item kommando bortsett fra Get-ChildItem kommando:

Den angitte mappen eksisterer ikke, og derfor ble ny mappe opprettet.

4. Opprett en mappe hvis den ikke finnes i PowerShell ved å bruke Test-Path og Mkdir

De mkdir kommandoen oppretter en mappe i PowerShell. Den har et alias md , som også fungerer på samme måte som Mkdir-kommandoen. Denne kommandoen kan også opprette en mappe hvis den ikke eksisterer med kombinasjonen av Test-Path-kommandoen og if-else-betingelsen.

Her er eksempelet på å lage en mappe hvis den ikke eksisterer i PowerShell ved å bruke md og Test-Path-kommandoen:

hvis ( Test-Path -Sti 'C:\Folder' ) {

Skrive-vert 'Mappen finnes allerede'
}
ellers
{
md 'C:\Folder'
}

Slik oppretter du en mappe hvis den ikke eksisterer:

  • Først oppretter du Hvis tilstand og spesifiser Test-Path kommando sammen med mappen for å sjekke om den eksisterer eller ikke.
  • Hvis mappen eksisterer, avslutter du koden her og skriver ut mappen som allerede eksisterer.
  • Ellers, opprett en mappe ved å bruke md kommando ved å spesifisere mappenavnet og banen:

Utdataene viser at mappen ikke eksisterer, og derfor ble ny mappe opprettet.

5. Opprett mappe hvis den ikke eksisterer i PowerShell ved å bruke [System.IO.File]::Exists()

De [System.IO.File]::Exists() kommandoen sjekker om den angitte mappen eksisterer eller ikke. Den kan opprette mappen i PowerShell hvis den ikke eksisterer med kombinasjonen av if-else-betingelsen og New-Item-kommandoen.

Slik kan du opprette en mappe hvis den ikke eksisterer i PowerShell ved å bruke kommandoen [System.IO.File]::Exists():

hvis ( [ System.IO.katalog ] :: Finnes ( 'C:\Docs' ) )
{
Skrive-vert 'Mappen finnes allerede'
}
ellers
{
Ny gjenstand 'C:\Docs' -Elementtype Katalog
}

I koden ovenfor:

  • Først oppretter du en Hvis tilstand og spesifiser [System.IO.Directory]::Exists(Folder-Path) kommando inne i den for å sjekke om den mappen eksisterer eller ikke.
  • Hvis katalogen blir funnet, vil konsollen skrive ut at mappen eksisterer.
  • Ellers vil den opprette den mappen ved å bruke Ny gjenstand kommando:

Den angitte mappen eksisterer ikke, og deretter opprettes en ny mappe ved hjelp av kommandoen New-Item.

Bonustips: Opprett en mappe hvis den allerede finnes i PowerShell

De -Makt parameter med Ny gjenstand kommandoen brukes til å overskrive en eksisterende mappe i PowerShell. Parameteren -Force overskriver et eksisterende element i den angitte banen i PowerShell. For å opprette en mappe hvis den allerede eksisterer, legg til parameteren -Force sammen med kommandoen New-Item.

Slik kan du overskrive en eksisterende mappe:

Ny gjenstand -Sti 'C:\Document' -Elementtype Katalog -Makt

Slik oppretter du en mappe hvis den allerede finnes i PowerShell:

  • Først bruker du New-Item-kommandoen og spesifiser mappen som skal opprettes ved å bruke parameteren -path.
  • Bruk deretter parameteren -ItemType og spesifiser verdien for å fortelle konsollen om å opprette en mappe.
  • Til slutt, for å overskrive en eksisterende mappe, bruk -Force-parameteren:

Mappen er overskrevet i den angitte banen.

Konklusjon

For å opprette en mappe hvis den ikke eksisterer, kontroller først mappens eksistens ved å bruke Test-Path kommando. Deretter bruker du Ny gjenstand kommando for å opprette en mappe, hvis den ikke eksisterer. For å utføre denne operasjonen på én gang må du bruke hvis-annet tilstand sammen med Test-Path-kommandoen og New-Item-kommandoen, som jeg allerede demonstrerte i metode 1 i denne artikkelen.