PowerShell Ustvari mapo, če ne obstaja

Powershell Ustvari Mapo Ce Ne Obstaja



Ali imate kup map in želite ustvariti novo, pa ne veste, ali ta že obstaja ali ne? Ta postopek lahko traja veliko časa, ker boste najprej poiskali to mapo, ne glede na to, ali obstaja ali ne, in jo nato ustvarili, če ne obstaja.

Presenetljivo vam lahko PowerShell prihrani veliko časa in truda, če poznate nekaj skriptiranja.







Počakaj! Za to nalogo se vam ni treba naučiti celotnega skriptiranja. Ker sem zagotovil pet metod za ustvarjanje mape, če ne obstaja, z ustrezno razlago vsakega ukaza, uporabljenega v njej.



Hitri oris:



Preden gremo k skriptom, se naučimo, kako preveriti, ali mapa obstaja ali ne, in nato o metodi za ustvarjanje mape v lupini PowerShell.





Preverite, ali mapa že obstaja v PowerShell

The Preizkusna pot ukaz se uporablja za preverjanje, ali mapa že obstaja v PowerShell. Če želite preveriti, ali mapa obstaja, je pot do mape navedena v ukazu Test-Path z uporabo -Pot parameter. V zameno se vrne ukaz Test-Path Prav vrednost, če obstaja, in False če ne obstaja.

Na primer, preverimo, ali navedena mapa obstaja ali ne uporablja Preizkusna pot ukaz:



Preizkusna pot -Pot 'C:\Dokument'

Če želite preveriti obstoj mape, najprej določite Testna pot in podajte pot do mape z uporabo -Pot parameter:

Izhod je False ker navedena mapa ne obstaja.

Ustvarite novo mapo v PowerShell

The Nov predmet ukaz ustvari novo mapo v PowerShell. Če želite ustvariti imenik, podajte pot imenika do ukaza New-Item z uporabo -Pot parameter. Najpomembneje je, da uporabite -Vrsta artikla parameter za ustvarjanje mape in določitev Imenik vrednost. Če ne podate parametra -ItemType in vrednosti imenika, bo ukaz New-Item ustvaril datoteko namesto mape.

Na primer, ustvarimo novo mapo z uporabo Nov predmet ukaz v lupini PowerShell:

Nov predmet -Pot 'C:\Dokument' -Vrsta artikla Imenik

Če želite ustvariti novo mapo:

  • Najprej uporabite Nov predmet in podajte pot do mape, ki naj bo ustvarjena -Pot parameter.
  • Po tem določite Imenik vrednost za -Vrsta artikla parameter, ki pove konzoli, naj ustvari mapo namesto datoteke:

Nova mapa je bila ustvarjena in njen čas ustvarjanja je viden tudi v zgornjem izpisu.

Ustvarite mapo, če ne obstaja v PowerShell

Iz poizvedbe je razvidno, da bo če potem scenarij, ki pravi, da če mapa ne obstaja, ustvarite novo mapo. Obstaja pet načinov za ustvarjanje mape, če ne obstaja v PowerShell, in vsaka metoda vključuje scenarij stanja if-else.

Hitra rešitev

Tukaj je hitra rešitev za ustvarjanje mape, če ne obstaja v konzoli PowerShell:

če ( -ne ( Preizkusna pot -Pot 'C:\Nova mapa' ) ) { Nov predmet -Pot 'C:\Nova mapa' -Vrsta artikla Imenik }

Navedeni imenik ne obstaja in je zato ustvarjen.

1. Ustvarite mapo, če ne obstaja v lupini PowerShell z uporabo preskusne poti

The Preizkusna pot ukaz preveri obstoj mape in pove konzoli, ali obstaja ali ne. Ukaz Test-Path in New-Item skupaj z Če potem pogoj pomaga ustvariti mapo, če ne obstaja v PowerShell.

Na primer, opazujmo to kodo, da z ukazom Test-Path ustvarimo mapo, če ne obstaja:

če ( Preizkusna pot -Pot 'C:\Nova mapa' ) {

Write-Host 'Določena mapa že obstaja'
}
drugače
{
Nov predmet -Pot 'C:\Nova mapa' -Vrsta artikla Imenik
}

Če želite ustvariti mapo z uporabo Preizkusna pot in Nov predmet ukaz:

  • Najprej smo ustvarili če stanju, kjer smo uporabili Preizkusna pot ukaz in določil mapo z uporabo -Pot za preverjanje obstoja map.
  • Če navedena mapa obstaja, bo sporočilo prikazano z uporabo Write-Host ukaz, ki navaja, da mapa že obstaja, in skript se bo tukaj končal.
  • V nasprotnem primeru se program premakne na naslednji razdelek.
  • V pogoju else smo uporabili Nov artikel in določil pot do mape, ki naj se ustvari.
  • Za jasnejšo razlago konzole, ki ustvari mapo, smo uporabili -Vrsta artikla lastnost in podali vrednost Imenik :

Izhod: Mapa ne obstaja, zato je v navedenem imeniku ustvarjena nova mapa.

2. Ustvarite mapo, če ne obstaja v lupini PowerShell z uporabo Get-Item

The Get-Item ukaz pridobi datoteko ali mapo s podane lokacije. Ukaz Get-Item lahko tudi preveri obstoj mape z uporabo pogoja if.

Tako lahko z ukazom Get-Item ustvarite mapo, če ne obstaja v lupini PowerShell:

če ( Get-Item -Pot 'C:\Dokument' -ErrorAction Ignoriraj ) {
Write-Host 'Datoteka že obstaja'
}
drugače {
Nov predmet -Podroben 'C:\Dokument' -Vrsta artikla Imenik
}

Če želite ustvariti mapo, če ne obstaja, uporabite Get-Item ukaz:

  • Najprej ustvarite če stanje, kjer uporabite Get-Item ukaz in določite pot do mape z uporabo -Pot parameter, da preverite, ali že obstaja ali ne.
  • Uporabite tudi -ErrorAction parameter in določite Ignoriraj vrednost za prezrtje napak, ki se lahko pojavijo med izvajanjem kode.
  • Če mapa že obstaja, bo konzola prikazala sporočilo, da mapa že obstaja z uporabo Write-Host ukaz.
  • Če mapa ne obstaja, se bo program premaknil v stanje else, kjer bo ustvarjena nova mapa.
  • V pogoju else uporabite Nov predmet ukaz, določite pot do mape, ki jo želite ustvariti, in uporabite -Vrsta artikla parameter, ki ima vrednost Imenik določeno za to.
  • Zraven navedite -besedno parameter za bolj podroben rezultat:

Posnetek zaslona potrjuje, da navedena mapa ne obstaja in je bila zato ustvarjena nova mapa.

3. Ustvarite mapo, če ne obstaja v lupini PowerShell, z uporabo Get-ChildItem

The Get-ChildItem ukaz pridobi datoteke ali mape iz danega imenika. Uporablja se lahko z ukazom New-Item in pogojem If-else za ustvarjanje mape, če ne obstaja v lupini PowerShell.

Tukaj je primer kode za ustvarjanje mape, če ne obstaja, s pomočjo ukaza Get-ChildItem:

če ( Get-ChildItem -Pot 'C:\Dokument' -ErrorAction Ignoriraj )
{
Write-Host 'Mapa že obstaja'
}
drugače
{
Nov predmet 'C:\Dokument' -Vrsta artikla Imenik
}

Opomba: Razlaga kode za zgornji delček je enaka kot za Get-Item ukaz razen za Get-ChildItem ukaz:

Navedena mapa ne obstaja, zato je bila ustvarjena nova mapa.

4. Ustvarite mapo, če ne obstaja v lupini PowerShell, z uporabo Test-Path in Mkdir

The mkdir ukaz ustvari mapo v PowerShell. Ima vzdevek md , ki prav tako deluje enako kot ukaz Mkdir. Ta ukaz lahko ustvari tudi mapo, če ne obstaja, s kombinacijo ukaza Test-Path in pogoja if-else.

Tukaj je primer ustvarjanja mape, če ne obstaja v lupini PowerShell z uporabo md in ukaza Test-Path:

če ( Testna pot -Pot 'C:\Mapa' ) {

Write-Host 'Mapa že obstaja'
}
drugače
{
md 'C:\Mapa'
}

Ustvarite mapo, če ne obstaja:

  • Najprej ustvarite če pogoj in navedite Testna pot ukaz skupaj z mapo, da preverite, ali obstaja ali ne.
  • Če mapa obstaja, končajte kodo tukaj in natisnite mapo, ki že obstaja.
  • V nasprotnem primeru ustvarite mapo z uporabo md ukaz tako, da podate ime mape in pot:

Izhod pokaže, da mapa ne obstaja, zato je bila ustvarjena nova mapa.

5. Ustvarite mapo, če ne obstaja v PowerShell z uporabo [System.IO.File]::Exists()

The [System.IO.File]::Exists() ukaz preveri, ali navedena mapa obstaja ali ne. Ustvari lahko mapo v lupini PowerShell, če ne obstaja, s kombinacijo pogoja if-else in ukaza New-Item.

Tako lahko z ukazom [System.IO.File]::Exists() ustvarite mapo, če ne obstaja v PowerShell:

če ( [ System.IO.Directory ] ::Obstaja ( 'C:\Dokumenti' ) )
{
Write-Host 'Mapa že obstaja'
}
drugače
{
Nov predmet 'C:\Dokumenti' -Vrsta artikla Imenik
}

V zgornji kodi:

  • Najprej ustvarite če pogoj in navedite [System.IO.Directory]::Exists(Folder-Path) ukaz znotraj nje, da preverite, ali ta mapa obstaja ali ne.
  • Če je imenik najden, bo konzola natisnila, da mapa obstaja.
  • V nasprotnem primeru bo to mapo ustvaril z uporabo Nov predmet ukaz:

Navedena mapa ne obstaja, nato pa se z ukazom New-Item ustvari nova mapa.

Dodatni nasvet: Ustvarite mapo, če že obstaja v PowerShell

The -Sila parameter z Nov predmet ukaz se uporablja za prepis obstoječe mape v PowerShell. Parameter -Force prepiše obstoječi element na podani poti v PowerShell. Če želite ustvariti mapo, če že obstaja, preprosto dodajte parameter -Force skupaj z ukazom New-Item.

Takole lahko prepišete obstoječo mapo:

Nov predmet -Pot 'C:\Dokument' -Vrsta artikla Imenik -Sila

Če želite ustvariti mapo, če že obstaja v PowerShell:

  • Najprej uporabite ukaz New-Item in s parametrom -path določite mapo, ki jo želite ustvariti.
  • Nato uporabite parameter -ItemType in podajte vrednost, da ukazni konzoli sporočite, naj ustvari mapo.
  • Nazadnje, če želite prepisati obstoječo mapo, uporabite parameter -Force:

Mapa je uspešno prepisana na navedeni poti.

Zaključek

Če želite ustvariti mapo, če ne obstaja, najprej preverite obstoj mape z uporabo Testna pot ukaz. Nato uporabite Nov predmet ukaz za ustvarjanje mape, če ta ne obstaja. Če želite to operacijo izvesti naenkrat, morate uporabiti če potem skupaj z ukazoma Test-Path in New-Item, ki sem ju že pokazal v 1. metodi v tem članku.