Er is geen enkel ingebouwd commando in gewone shells (zoals bash, zsh, PowerShell) dat *precies* doet wat je hebt beschreven:bestanden verwijderen met voor elk een bevestigingsprompt. Om dit te bereiken heb je een script nodig.
Hier zijn voorbeelden in Bash en PowerShell:
Bash (Linux/macOS):
``` bash
#!/bin/bash
voor bestand in *.txt; Doen
read -p "Verwijder '$file'? (y/n) " antwoord
if [[ "$antwoord" =="y" ]]; Dan
rm "$bestand"
fi
klaar
```
Uitleg:
* `#!/bin/bash`:Shebang-regel, die de tolk specificeert.
* `voor bestand in *.txt; do ... done`:Loopt door alle bestanden die eindigen op `.txt` in de huidige map.
* `read -p "Verwijder '$file'? (y/n) " antwoord`:vraagt de gebruiker om de bestandsnaam en leest zijn antwoord in de `antwoord` variabele.
* `if [[ "$antwoord" =="y" ]]; then ... fi`:Controleert of het antwoord "y" is (hoofdlettergevoelig). Als dat zo is, voert het `rm "$file"` uit om het bestand te verwijderen. De aanhalingstekens rond `"$file"` zijn cruciaal voor het correct verwerken van bestandsnamen met spaties of speciale tekens.
PowerShell (Windows):
```powershell
Get-ChildItem *.txt | ForEach-Object {
$antwoord =Read-Host "Verwijder '$($_.Name)'? (j/n)"
als ($antwoord -eq "y") {
Item verwijderen $_.FullName
}
}
```
Uitleg:
* `Get-ChildItem *.txt`:haalt alle bestanden op die eindigen op `.txt`.
* `ForEach-Object { ... }`:Doorloopt elk bestand.
* `$_.Name`:De bestandsnaam.
* `$_.FullName`:Het volledige pad naar het bestand.
* `Read-Host "Delete '$($_.Name)'? (y/n)"`:Vraagt de gebruiker om bevestiging.
* `if ($antwoord -eq "y") { ... }`:Controleert of het antwoord "y" is (niet hoofdlettergevoelig). Als dat zo is, verwijdert `Remove-Item $_.FullName` het bestand.
Voordat u een van beide scripts uitvoert:
1. Sla het script op: Sla de bovenstaande code op in een bestand (bijvoorbeeld `delete_txt.sh` voor Bash, `delete_txt.ps1` voor PowerShell).
2. Maak het uitvoerbaar (alleen Bash): Voer `chmod +x delete_txt.sh` uit in uw terminal.
3. Voer het script uit: Voer het script uit vanuit de map die de `.txt`-bestanden bevat die u wilt verwijderen. Bijvoorbeeld:`./delete_txt.sh` (Bash) of `.\delete_txt.ps1` (PowerShell).
Belangrijke waarschuwing: Controleer altijd uw script voordat u het uitvoert. Het verwijderen van bestanden is een destructieve actie. Het is een goed idee om een back-up te maken van belangrijke bestanden voordat u een script uitvoert dat ze verwijdert. |