PowerShell Map maken als deze niet bestaat

Powershell Map Maken Als Deze Niet Bestaat



Heeft u een aantal mappen en wilt u een nieuwe maken, maar weet u niet of die map al bestaat of niet? Dit proces kan veel tijd in beslag nemen, omdat u eerst naar die map zoekt, of deze nu bestaat of niet, en deze vervolgens maakt als deze niet bestaat.

Verrassend genoeg kan PowerShell u veel tijd en moeite besparen als u een beetje scripting kent.







Hou vol! U hoeft voor die taak niet het hele scripting-gedoe te leren. Omdat ik vijf methoden heb gegeven om een ​​map te maken als deze niet bestaat, met een goede uitleg van elke opdracht die erin wordt gebruikt.



Snel overzicht:



Voordat we verder gaan met scripts, leren we eerst hoe we kunnen controleren of een map bestaat of niet, en vervolgens hoe we een methode kunnen gebruiken om een ​​map in PowerShell te maken.





Controleer of de map al bestaat in PowerShell

De Testpad opdracht wordt gebruikt om te controleren of de map al bestaat in PowerShell. Om te controleren of de map bestaat, wordt het mappad opgegeven in de opdracht Test-Path, met behulp van de -Pad parameter. In ruil daarvoor keert de opdracht Test-Path terug WAAR waarde als deze bestaat, en Vals als het niet bestaat.

Laten we bijvoorbeeld controleren of de opgegeven map bestaat of niet de Testpad commando:



Testpad -Pad 'C:\Document'

Om het bestaan ​​van de map te controleren, geeft u eerst het Testpad opdracht en geef het mappad op met behulp van de -Pad parameter:

De uitvoer is Vals omdat de opgegeven map niet bestaat.

Maak een nieuwe map in PowerShell

De Nieuw item opdracht maakt een nieuwe map in PowerShell. Om een ​​map te maken, geeft u het mappad op voor de opdracht New-Item met behulp van de -Pad parameter. Het allerbelangrijkste: gebruik de -Type voorwerp parameter om een ​​map te maken en de Directory waarde. Als u de parameter -ItemType en de Directory-waarde niet opgeeft, maakt de opdracht New-Item een ​​bestand in plaats van een map.

Laten we bijvoorbeeld een nieuwe map maken met behulp van de Nieuw item opdracht in PowerShell:

Nieuw item -Pad 'C:\Document' -Type voorwerp Directory

Een nieuwe map maken:

  • Gebruik eerst de Nieuw item opdracht en geef het mappad op dat moet worden gemaakt naar de -Pad parameter.
  • Geef daarna de Directory waarde aan de -Type voorwerp parameter om de console te vertellen een map te maken in plaats van een bestand:

De nieuwe map is gemaakt en de aanmaaktijd ervan is ook zichtbaar in de bovenstaande uitvoer.

Maak een map als deze niet bestaat in PowerShell

Uit de vraag blijkt dat het een als-anders scenario, waarin staat dat als de map niet bestaat, u een nieuwe map moet maken. Er zijn vijf methoden om een ​​map te maken als deze niet bestaat in PowerShell, en elke methode omvat het if-else-voorwaardescenario.

Snelle oplossing

Hier is de snelle oplossing om een ​​map te maken als deze niet bestaat in de PowerShell-console:

als ( -niet ( Testpad -Pad 'C:\NieuweMap' ) ) { Nieuw item -Pad 'C:\NieuweMap' -Type voorwerp Directory }

De opgegeven map bestaat niet en is daarom gemaakt.

1. Maak een map als deze niet bestaat in PowerShell met behulp van Test-Path

De Testpad commando controleert het bestaan ​​van de map en vertelt de console of deze bestaat of niet. De opdrachten Test-Path en New-Item samen met de Als-anders condition helpt bij het maken van een map als deze niet bestaat in PowerShell.

Laten we bijvoorbeeld deze code bekijken om een ​​map te maken als deze niet bestaat met behulp van de opdracht Test-Path:

als ( Testpad -Pad 'C:\NieuweMap' ) {

Schrijf-host 'Opgegeven map bestaat al'
}
anders
{
Nieuw item -Pad 'C:\NieuweMap' -Type voorwerp Directory
}

Om een ​​map te maken met behulp van de Testpad En Nieuw item commando:

  • Eerst hebben we een Als staat, waar we de Testpad opdracht en specificeerde de map met behulp van de -Pad om het bestaan ​​van mappen te controleren.
  • Als de opgegeven map bestaat, wordt het bericht weergegeven met behulp van de Schrijf-host commando waarin staat dat de map al bestaat en dat het script hier eindigt.
  • Anders gaat het programma naar de volgende sectie.
  • In de else-conditie gebruikten we de Nieuw item opdracht en specificeerde het mappad dat moet worden gemaakt.
  • Om de console die een map aanmaakt duidelijker uit te leggen, hebben we de -Type voorwerp eigenschap en specificeerde de waarde Directory :

Uitgang: De map bestaat niet en daarom wordt er een nieuwe map gemaakt in de opgegeven map.

2. Maak een map als deze niet bestaat in PowerShell met behulp van Get-Item

De Artikel ophalen opdracht haalt het bestand of de map op van de opgegeven locatie. De opdracht Get-Item kan ook het bestaan ​​van de map controleren met behulp van de if-voorwaarde.

Zo kunt u een map maken als deze niet bestaat in PowerShell met behulp van de opdracht Get-Item:

als ( Artikel ophalen -Pad 'C:\Document' -FoutActie Negeren ) {
Schrijf-host 'Bestand bestaat al'
}
anders {
Nieuw item - Uitgebreid 'C:\Document' -Type voorwerp Directory
}

Om een ​​map te maken als deze nog niet bestaat, gebruikt u de Artikel ophalen commando:

  • Maak eerst een Als staat, waar gebruik de Artikel ophalen opdracht en geef het mappad op met behulp van de -Pad parameter om te controleren of deze al bestaat of niet.
  • Gebruik ook de -FoutActie parameter en specificeer de Negeren waarde om fouten te negeren die kunnen optreden tijdens de uitvoering van de code.
  • Als de map al bestaat, zal de console het bericht weergeven dat de map al bestaat met behulp van de Schrijf-host commando.
  • Als de map niet bestaat, zal het programma naar de else-conditie gaan waar de nieuwe map zal worden aangemaakt.
  • In de else-conditie gebruikt u de Nieuw item opdracht, geef het mappad op dat moet worden gemaakt en gebruik de -Type voorwerp parameter met de waarde Directory daaraan gespecificeerd.
  • Geef daarnaast de -uitgebreid parameter voor meer gedetailleerde uitvoer:

De schermafbeelding bevestigt dat de opgegeven map niet bestaat en dat er daarom een ​​nieuwe map is gemaakt.

3. Maak een map als deze niet bestaat in PowerShell met behulp van Get-ChildItem

De Get-ChildItem opdracht haalt de bestanden of mappen uit de opgegeven map. Het kan worden gebruikt met de opdracht New-Item en de voorwaarde If-else om een ​​map te maken als deze niet bestaat in PowerShell.

Hier is de voorbeeldcode om een ​​map te maken als deze nog niet bestaat, met behulp van de opdracht Get-ChildItem:

als ( Get-ChildItem -Pad 'C:\Document' -FoutActie Negeren )
{
Schrijf-host 'Map bestaat al'
}
anders
{
Nieuw item 'C:\Document' -Type voorwerp Directory
}

Opmerking: De code-uitleg voor het bovenstaande fragment is dezelfde als voor de Artikel ophalen opdracht behalve de Get-ChildItem commando:

De opgegeven map bestaat niet en daarom is er een nieuwe map gemaakt.

4. Maak een map als deze niet bestaat in PowerShell met behulp van Test-Path en Mkdir

De mkdir opdracht maakt een map in PowerShell. Het heeft een alias md , dat ook op dezelfde manier functioneert als de opdracht Mkdir. Met deze opdracht kan ook een map worden gemaakt als deze niet bestaat, met de combinatie van de opdracht Test-Path en de if-else-voorwaarde.

Hier is het voorbeeld van het maken van een map als deze niet bestaat in PowerShell met behulp van de opdracht md en Test-Path:

als ( Testpad -Pad 'C:\Map' ) {

Schrijf-host 'Map bestaat al'
}
anders
{
md 'C:\Map'
}

Een map maken als deze nog niet bestaat:

  • Maak eerst de Als voorwaarde en specificeer de Testpad opdracht samen met de map om te controleren of deze bestaat of niet.
  • Als de map bestaat, beëindigt u de code hier en drukt u de map af die al bestaat.
  • Maak anders een map met behulp van de md opdracht door de mapnaam en het pad op te geven:

De uitvoer laat zien dat de map niet bestaat en dat er daarom een ​​nieuwe map is gemaakt.

5. Maak een map als deze niet bestaat in PowerShell met behulp van [System.IO.File]::Exists()

De [Systeem.IO.Bestand]::Bestaat() opdracht controleert of de opgegeven map bestaat of niet. Het kan de map in PowerShell maken als deze niet bestaat, met de combinatie van de if-else-voorwaarde en de opdracht New-Item.

Zo kunt u een map maken als deze niet bestaat in PowerShell met behulp van de opdracht [System.IO.File]::Exists():

als ( [ Systeem.IO.Directory ] ::Bestaat ( 'C:\Documenten' ) )
{
Schrijf-host 'Map bestaat al'
}
anders
{
Nieuw item 'C:\Documenten' -Type voorwerp Directory
}

In de bovenstaande code:

  • Maak eerst een Als voorwaarde en specificeer de [Systeem.IO.Directory]::Bestaat(mappad) opdracht erin om te controleren of die map bestaat of niet.
  • Als de map wordt gevonden, zal de console afdrukken dat de map bestaat.
  • Anders zal het die map maken met behulp van de Nieuw item commando:

De opgegeven map bestaat niet en vervolgens wordt er een nieuwe map gemaakt met de opdracht New-Item.

Bonustip: maak een map als deze al bestaat in PowerShell

De -Kracht parameter met de Nieuw item opdracht wordt gebruikt om een ​​bestaande map in PowerShell te overschrijven. De parameter -Force overschrijft een bestaand item in het opgegeven pad in PowerShell. Om een ​​map te maken als deze al bestaat, voegt u eenvoudigweg de parameter -Force toe samen met de opdracht New-Item.

Zo kunt u een bestaande map overschrijven:

Nieuw item -Pad 'C:\Document' -Type voorwerp Directory -Kracht

Een map maken als deze al bestaat in PowerShell:

  • Gebruik eerst de opdracht New-Item en geef de map op die moet worden gemaakt met behulp van de parameter -path.
  • Gebruik vervolgens de parameter -ItemType en geef de waarde op om de console te vertellen een map te maken.
  • Om een ​​bestaande map te overschrijven, gebruikt u ten slotte de parameter -Force:

De map is succesvol overschreven in het opgegeven pad.

Conclusie

Om een ​​map aan te maken die nog niet bestaat, controleert u eerst het bestaan ​​van de map met behulp van de Testpad commando. Gebruik dan de Nieuw item opdracht om een ​​map te maken als deze nog niet bestaat. Om deze handeling in één keer uit te voeren, moet u de als-anders condition samen met de opdrachten Test-Path en New-Item, die ik al heb gedemonstreerd in Methode 1 van dit artikel.