Wanneer je bestanden en mappen op een Windows-pc wilt maken, lijkt het gebruik van de GUI de meest intuïtieve manier om dit te doen. PowerShell kan echter slim meerdere bestanden en mappen tegelijk maken. Dit is een vrij gebruikelijke taak voor vrijwel elke IT-professional, en in deze handleiding laten we je zien hoe je je bestanden en mappen kunt maken met behulp van de New-Item PowerShell-cmdlet.
Hoe je een bestand aanmaakt in PowerShell
Zodra je begrijpt hoe je PowerShell gebruikt, maakt de snelheid waarmee je dingen kunt maken saaie taken veel gemakkelijker. Laten we beginnen en kijken hoe je bestanden en mappen maakt met behulp van de New-Item, Add-Content en Test-Path cmdlets.
Hoe je een bestand maakt met het New-Item commando
Een nieuw bestand maken met PowerShell kan worden gedaan met behulp van het New-Item cmdlet. Als ik bijvoorbeeld een nieuw tekstbestand met de naam MyTextFile.txt wil maken, zou de syntaxis als volgt zijn:
New-Item MyTextFile.txt

In het bovenstaande voorbeeld heeft PowerShell een bestand in de c: directory aangemaakt. Ik kan echter eenvoudig een andere locatie specificeren door het pad aan de bestandsnaam toe te voegen. Hier is een voorbeeld hieronder:
New-Item c:\tools\MyNewFile.txt

Merk op dat in de bovenstaande schermafbeelding ik in de temp directory was, maar toch heb ik het bestand in de tools directory aangemaakt. Zodra je bekend bent met het maken van een nieuw bestand, is het slechts één regelcode om toe te voegen om bestanden in bulk te gaan maken.
Hier is een voorbeeld van hoe je een eenvoudige ForEach-lus kunt gebruiken om 10 bestanden te maken, allemaal met een vergelijkbare bestandsnaam.
(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}

Indien nodig kun je ook de Get-ChildItem cmdlet gebruiken om alle bestanden in die directory te tonen.
Maak een bestand aan na controle dat het nog niet bestaat
Je kunt ook PowerShell gebruiken om te controleren of bestanden al bestaan voordat je probeert ze aan te maken. Er zijn verschillende manieren om te controleren of bestanden al bestaan met PowerShell, maar de makkelijkste manier is om de Test-Path cmdlet te gebruiken.
Zoals de naam al aangeeft, kan de Test-Path cmdlet controleren of een pad bestaat. U kunt controleren op bestanden en/of map-paden. De cmdlet geeft True terug als een bestand of map bestaat, en False als dat niet het geval is.
In het onderstaande voorbeeld controleer ik of het bestand met de naam MyTextFile.txt bestaat. Aangezien het bestand bestaat, retourneerde de Test-Path cmdlet True:
Test-Path MyTextFile.txt

Zodra u de logica leert om te controleren of een bestand bestaat, kunt u de Test-Path-opdracht gebruiken met een If-statement om een bestand te maken wanneer Test-Path false retourneert. Ik zal je laten zien hoe je dat doet in het onderstaande voorbeeld:
- Hier gebruik ik een variabele met de naam $FileName voor de bestandsnaam om mijn code gemakkelijker te laten lezen en om repetitief typen te vermijden.
- Vervolgens heb ik een If-verklaring toegevoegd om te controleren op een bestand. De ronde haken bevatten de voorwaarde om te testen. De accolades bevatten de code die ik wil uitvoeren als de test waar is. Let op: de -not-operator wordt in mijn voorbeeld gebruikt.
- De code zegt dat als het bestand met de naam MyTextFile.txt niet bestaat, dan moet het bestand worden aangemaakt. Een If-verklaring voert alleen uit als de voorwaarde waar is.
- I have added the -not parameter to change the condition to match on False instead of True.
$Filename = "MyTextFile.txt" if (-not(test-path $Filename)){new-item $FileName}

Laten we samen de output doornemen zodat we precies weten wat er is gebeurd: In voorbeeld 1 voerde ik mijn code uit en er gebeurde niets; let op dat er geen output is. Dat komt omdat in mijn c: map een bestand met de naam MyTextFile.txt al bestaat. Omdat het bestaat, heeft de if-verklaring de code niet uitgevoerd.
In voorbeeld 2 kunt u echter opmerken dat ik de map van de tijdelijke map naar de gereedschapsmap heb gewijzigd. Aangezien er geen bestand met de naam MyTextFile.txt in de laatste staat, wanneer ik de code een tweede keer uitvoer, voert de if-verklaring de New-Item cmdlet uit en maakt een nieuw bestand aan.
Hoe gegevens in een nieuw of bestaand bestand schrijven
We hebben al gekeken naar hoe je nieuwe bestanden kunt maken met PowerShell. Als je echter naar de vorige schermafbeeldingen kijkt, merk je op dat de bestandsgrootte van alle nieuwe bestanden 0 bytes is. Dat komt omdat de New-Item cmdlet eigenlijk lege bestanden maakt.
Als u gegevens aan een bestaand bestand wilt toevoegen, kunt u de Add-Content cmdlet gebruiken. De syntax is gemakkelijk te begrijpen, net als bij het New-item commando. Hieronder staat een voorbeeld:
Add-Content mytextfile.txt -Value "Here's some sample text written via PowerShell"
Vervolgens kan ik mijn bestand controleren met behulp van de Get-Content cmdlet.
get-content .\mytextfile.txt

I can also open the file in PowerShell using the Invoke-Item cmdlet.
Invoke-Item .\mytextfile.txt

Hoe een bestaand bestand overschrijven
Als PowerShell kan worden gebruikt om nieuwe bestanden te maken, kunnen we het ook gebruiken om bestaande bestanden in een map te vervangen. PowerShell zal waarschuwen als je probeert een bestand te maken terwijl er al een bestaat met dezelfde naam.
Je kunt in het onderstaande voorbeeld de foutmelding zien die PowerShell weergeeft wanneer ik probeer een bestand met de naam MyNewFile3.txt te maken.
New-item .\MyNewFile3.txt

Als ik echter dat bestand wil vervangen, kan dat door de -force parameter toe te voegen, die elk bestaand bestand met dezelfde naam zal overschrijven.
new-item .\MyNewFile3.txt -Force

Hoe maak je een map in PowerShell
We hebben zojuist de verschillende manieren doorgenomen om bestanden te maken in PowerShell. Laten we nu eens kijken hoe we mappen kunnen maken met de New-item en md commando’s.
Creëer een map met het New-item commando
Mappen maken met PowerShell is ook een eenvoudige taak met hetzelfde New-Item cmdlet dat we eerder hebben gebruikt om bestanden te maken. Het enige wat we moeten doen is het -ItemType parameter specificeren.
De -ItemType parameter bepaalt of het New-Item cmdlet een bestand, map, symbolische koppeling, verbindingspunt of een harde koppeling maakt. Meer informatie over deze opties vind je op de Microsoft Docs-pagina voor New-Item.
Een nieuwe map maken met PowerShell is vergelijkbaar met het maken van een nieuw bestand. Hier is een voorbeeld met het onderstaande commando:
new-item TestFolder1 -ItemType Directory

Maak een map aan met het md commando
PowerShell is nu een cross-platform taal, wat betekent dat het kan worden uitgevoerd op Windows, macOS of Linux. Het proces van het maken van bestanden en mappen in Windows, Linux en macOS vanaf de commandoregel is vergelijkbaar.
Elk besturingssysteem heeft echter zijn eigen commando’s met verschillende namen om dezelfde taken uit te voeren. Bijvoorbeeld, om een nieuwe map genaamd NieuweMap te maken, hebben alle OS’en een vergelijkbare syntaxis met verschillende cmdlet-namen: In DOS is de syntaxis ‘MD NieuweMap’, maar in Linux is het ‘MKDIR NieuweMap’.
Microsoft heeft veel populaire cmdlet-namen uit andere talen overgenomen en deze opgenomen in PowerShell. Commando’s zoals MKDIR of MD bestaan eigenlijk niet in PowerShell: In plaats daarvan zijn het aliassen naar hun PowerShell-tegenhangers die hetzelfde doen.
In PowerShell is MD een alias naar MKDIR. Ook is MKDIR een alias naar de New-Item cmdlet. Dat betekent dat als je MD, MKDIR of New-Item typt in PowerShell, al die commando’s hetzelfde effect hebben: de New-Item cmdlet uitvoeren.
Hier is een snel voorbeeld om die functionaliteit te benadrukken.
md Demofile1.txt
mkdir demofile2.txt
new-item demofile 3.txt

In de voorbeelden hierboven zie je dat ik drie bestanden heb aangemaakt met behulp van verschillende aliassen en cmdlet-namen voor New-Item. De aliassen werken allemaal precies hetzelfde als het typen van New-Item.
Conclusie
PowerShell biedt vele manieren om bestanden en mappen aan te maken. Met behulp van de New-Item cmdlet is het ontzettend eenvoudig om bestanden en mappen te maken.
Microsoft heeft aliassen toegevoegd die verwijzen naar commando’s van populaire besturingssystemen zoals DOS en Linux in PowerShell, om beheerders zich meteen thuis te laten voelen. We kunnen ook lussen gebruiken om op grote schaal bestanden en mappen aan te maken en logische statements zoals If gebruiken om ervoor te zorgen dat we alleen bestanden aanmaken die nog niet bestaan.
We kunnen er ook voor zorgen dat bestanden die al bestaan niet worden overschreven door code, tenzij we willen dat ze worden vervangen. al deze opties stellen ons in staat scripts te bouwen om het saaie proces van het beheren van bestanden en mappen te automatiseren.
PowerShell is een zeer veelzijdige tool, en nu je hebt geleerd hoe je bestanden en mappen kunt maken, kun je onze vorige gids bekijken over het gebruik van PowerShell om bestanden en mappen te verwijderen.
Source:
https://petri.com/powershell-how-to-create-files-folders/