PowerShell Opret mappe, hvis den ikke eksisterer

Powershell Opret Mappe Hvis Den Ikke Eksisterer



Har du en masse mapper og vil oprette en ny, men ved ikke om den allerede findes eller ej? Denne proces kan tage meget tid, fordi du først vil søge efter den mappe, uanset om den eksisterer eller ej, og derefter oprette den, hvis den ikke eksisterer.

Overraskende nok kan PowerShell spare dig for en masse tid og kræfter, hvis du kender en lille smule scripting.







Hold fast! Du behøver ikke at lære hele scripting-tinget til den opgave. Fordi jeg har givet fem metoder til at oprette en mappe, hvis den ikke eksisterer, med en korrekt forklaring af hver kommando, der bruges i den.



Hurtig oversigt:



Før vi bevæger os mod scripts, lad os lære, hvordan man kontrollerer, om en mappe eksisterer eller ej, og derefter til en metode til at oprette en mappe i PowerShell.





Tjek, om mappen allerede findes i PowerShell

Det Test-sti kommandoen bruges til at kontrollere, om mappen allerede findes i PowerShell. For at kontrollere, om mappen eksisterer, angives mappestien til kommandoen Test-Path ved hjælp af -Sti parameter. Til gengæld vender Test-Path-kommandoen tilbage Rigtigt værdi, hvis den findes, og Falsk hvis den ikke findes.

Lad os for eksempel kontrollere, om den angivne mappe eksisterer eller ikke bruger Test-sti kommando:



Test-sti -Sti 'C:\Document'

For at kontrollere eksistensen af ​​mappen skal du først angive Test-sti kommandoen og angiv mappestien ved hjælp af -Sti parameter:

Udgangen er Falsk fordi den angivne mappe ikke eksisterer.

Opret en ny mappe i PowerShell

Det Ny vare kommandoen opretter en ny mappe i PowerShell. For at oprette en mappe skal du angive biblioteksstien til kommandoen New-Item ved hjælp af -Sti parameter. Vigtigst af alt, brug -Varetype parameter for at oprette en mappe og angive Vejviser værdi. Hvis du ikke angiver parameteren -ItemType og mappeværdien, vil kommandoen New-Item oprette en fil i stedet for en mappe.

Lad os for eksempel oprette en ny mappe ved hjælp af Ny vare kommando i PowerShell:

Ny vare -Sti 'C:\Document' -Varetype Vejviser

Sådan opretter du en ny mappe:

  • Først skal du bruge Ny vare kommando og angiv mappestien, der skal oprettes til -Sti parameter.
  • Angiv derefter Vejviser værdi for -Varetype parameter for at fortælle konsollen om at oprette en mappe i stedet for en fil:

Den nye mappe er blevet oprettet, og dens oprettelsestid er også synlig i ovenstående output.

Opret en mappe, hvis den ikke findes i PowerShell

Ud fra forespørgslen kan det ses, at det bliver en hvis ellers scenarie, som siger, at hvis mappen ikke eksisterer, så opret en ny mappe. Der er fem metoder til at oprette en mappe, hvis den ikke findes i PowerShell, og hver metode involverer scenariet if-else betingelse.

Hurtig løsning

Her er den hurtige løsning til at oprette en mappe, hvis den ikke findes i PowerShell-konsollen:

hvis ( -ikke ( Test-sti -Sti 'C:\NewFolder' ) ) { Ny vare -Sti 'C:\NewFolder' -Varetype Vejviser }

Den angivne mappe eksisterer ikke, og derfor oprettes den.

1. Opret mappe, hvis den ikke findes i PowerShell ved hjælp af Test-Path

Det Test-sti kommando kontrollerer eksistensen af ​​mappen og fortæller konsollen, om den eksisterer eller ej. Kommandoen Test-Path og New-Item sammen med Hvis ellers betingelse hjælper med at oprette en mappe, hvis den ikke findes i PowerShell.

Lad os for eksempel observere denne kode for at oprette en mappe, hvis den ikke eksisterer ved hjælp af Test-Path-kommandoen:

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

Skriv-vært 'Specificeret mappe findes allerede'
}
andet
{
Ny vare -Sti 'C:\NewFolder' -Varetype Vejviser
}

For at oprette en mappe ved hjælp af Test-sti og Ny vare kommando:

  • Først oprettede vi en Hvis tilstand, hvor vi brugte Test-sti kommandoen og specificerede mappen ved hjælp af -Sti for at kontrollere mappers eksistens.
  • Hvis den angivne mappe findes, vil meddelelsen blive vist ved hjælp af Skriv-vært kommando, der angiver, at mappen allerede eksisterer, og scriptet slutter her.
  • Ellers flytter programmet til næste afsnit.
  • I den anden tilstand brugte vi Ny vare kommando og specificerede mappestien, der skal oprettes.
  • For mere tydeligt at forklare konsollen, der opretter en mappe, brugte vi -Varetype ejendom og specificerede værdien Vejviser :

Produktion: Mappen eksisterer ikke, og derfor oprettes en ny mappe i den angivne mappe.

2. Opret mappe, hvis den ikke findes i PowerShell ved hjælp af Get-Item

Det Hent-vare kommando henter filen eller mappen fra den angivne placering. Kommandoen Get-Item kan også kontrollere eksistensen af ​​mappen ved at bruge if-betingelsen.

Sådan kan du oprette en mappe, hvis den ikke findes i PowerShell ved hjælp af kommandoen Get-Item:

hvis ( Hent-vare -Sti 'C:\Document' - Fejlhandling Ignorere ) {
Skriv-vært 'Filen findes allerede'
}
andet {
Ny vare -Ordrig 'C:\Document' -Varetype Vejviser
}

For at oprette en mappe, hvis den ikke findes, skal du bruge Hent-vare kommando:

  • Først skal du oprette en Hvis tilstand, hvor brug den Hent-vare kommandoen og angiv mappestien ved hjælp af -Sti parameter for at kontrollere, om den allerede eksisterer eller ej.
  • Brug også - Fejlhandling parameter og angiv Ignorere værdi for at ignorere fejl, der kan opstå under udførelse af kode.
  • Hvis mappen allerede eksisterer, vil konsollen vise meddelelsen om, at mappen allerede eksisterer ved hjælp af Skriv-vært kommando.
  • Hvis mappen ikke eksisterer, vil programmet flytte til den anden tilstand, hvor den nye mappe vil blive oprettet.
  • I den anden tilstand skal du bruge Ny vare kommando, angiv mappestien, der skal oprettes, og brug -Varetype parameter med værdien Vejviser specificeret til det.
  • Ved siden af ​​det angives -ordrig parameter for at få mere detaljeret output:

Skærmbilledet bekræfter, at den angivne mappe ikke eksisterer, og derfor blev der oprettet en ny mappe.

3. Opret mappe, hvis den ikke findes i PowerShell ved hjælp af Get-ChildItem

Det Get-ChildItem kommando henter filerne eller mapperne fra den givne mappe. Den kan bruges med kommandoen New-Item og If-else betingelsen til at oprette en mappe, hvis den ikke findes i PowerShell.

Her er eksempelkoden til at oprette en mappe, hvis den ikke eksisterer ved hjælp af kommandoen Get-ChildItem:

hvis ( Get-ChildItem -Sti 'C:\Document' - Fejlhandling Ignorere )
{
Skriv-vært 'Mappe findes allerede'
}
andet
{
Ny vare 'C:\Document' -Varetype Vejviser
}

Bemærk: Kodeforklaringen for ovenstående kodestykke er den samme som for Hent-vare kommando bortset fra Get-ChildItem kommando:

Den angivne mappe eksisterer ikke, og derfor blev der oprettet en ny mappe.

4. Opret en mappe, hvis den ikke findes i PowerShell ved hjælp af Test-Path og Mkdir

Det mkdir kommandoen opretter en mappe i PowerShell. Den har et alias md , som også fungerer på samme måde som Mkdir-kommandoen. Denne kommando kan også oprette en mappe, hvis den ikke eksisterer med kombinationen af ​​kommandoen Test-sti og betingelsen if-else.

Her er eksemplet på at oprette en mappe, hvis den ikke eksisterer i PowerShell ved hjælp af md og Test-Path-kommandoen:

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

Skriv-vært 'Mappe findes allerede'
}
andet
{
md 'C:\Folder'
}

Sådan opretter du en mappe, hvis den ikke findes:

  • Først skal du oprette Hvis tilstand og angiv Test-sti kommando sammen med mappen for at kontrollere, om den eksisterer eller ej.
  • Hvis mappen findes, skal du afslutte koden her og udskrive den allerede eksisterende mappe.
  • Ellers skal du oprette en mappe ved hjælp af md kommando ved at angive mappenavnet og stien:

Outputtet viser, at mappen ikke eksisterer, og derfor blev der oprettet en ny mappe.

5. Opret mappe, hvis den ikke findes i PowerShell ved hjælp af [System.IO.File]::Exists()

Det [System.IO.File]::Eksisterer() kommandoen kontrollerer, om den angivne mappe eksisterer eller ej. Det kan oprette mappen i PowerShell, hvis den ikke eksisterer med kombinationen af ​​if-else-betingelsen og New-Item-kommandoen.

Sådan kan du oprette en mappe, hvis den ikke findes i PowerShell ved hjælp af kommandoen [System.IO.File]::Exists():

hvis ( [ System.IO.Directory ] :: Eksisterer ( 'C:\Docs' ) )
{
Skriv-vært 'Mappe findes allerede'
}
andet
{
Ny vare 'C:\Docs' -Varetype Vejviser
}

I ovenstående kode:

  • Først skal du oprette en Hvis tilstand og angiv [System.IO.Directory]::Exists(Folder-Path) kommando inde i den for at kontrollere, om mappen eksisterer eller ej.
  • Hvis mappen findes, udskriver konsollen, at mappen eksisterer.
  • Ellers vil den oprette den mappe ved hjælp af Ny vare kommando:

Den angivne mappe findes ikke, og derefter oprettes en ny mappe ved hjælp af kommandoen New-Item.

Bonustip: Opret en mappe, hvis den allerede findes i PowerShell

Det -Kraft parameter med Ny vare kommandoen bruges til at overskrive en eksisterende mappe i PowerShell. Parameteren -Force overskriver et eksisterende element i den angivne sti i PowerShell. For at oprette en mappe, hvis den allerede eksisterer, skal du blot tilføje parameteren -Force sammen med kommandoen New-Item.

Sådan kan du overskrive en eksisterende mappe:

Ny vare -Sti 'C:\Document' -Varetype Vejviser -Kraft

Sådan oprettes en mappe, hvis den allerede findes i PowerShell:

  • Brug først kommandoen New-Item og angiv den mappe, der skal oprettes ved hjælp af parameteren -path.
  • Brug derefter parameteren -ItemType og angiv værdien for at fortælle konsollen om at oprette en mappe.
  • Til sidst, for at overskrive en eksisterende mappe, brug parameteren -Force:

Mappen er overskrevet i den angivne sti.

Konklusion

For at oprette en mappe, hvis den ikke eksisterer, skal du først kontrollere mappens eksistens ved hjælp af Test-sti kommando. Brug derefter Ny vare kommando for at oprette en mappe, hvis den ikke findes. For at udføre denne operation på én gang skal du bruge hvis ellers tilstand sammen med Test-Path-kommandoen og New-Item-kommandoen, som jeg allerede demonstrerede i metode 1 i denne artikel.