Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Aký je príkaz, ktorý odstráni všetky súbory s rozšírením TXT vo vašom aktuálnom adresári, ale pozastavia sa v každom súbore a opýta sa, či ho chcete alebo nechať na pokoji?

V spoločných škrupinách (ako Bash, ZSH, PowerShell) nie je vstavaný príkaz (ako Bash, Zsh, ktorý robí * presne * to, čo ste opísali:Vymazanie súborov s potvrdzovacou výzvou pre každú z nich. Na dosiahnutie tohto cieľa potrebujete skript.

Tu sú príklady v Bash a PowerShell:

bash (linux/macos):

`` `Bash

#!/bin/bash

pre súbor v *.txt; robiť

čítať -p "Odstrániť '$ file'? (y/n)" Odpoveď

ak [["$ odpoveď" =="y"]]; potom

RM „$ súbor“

FI

vykonaný

`` `

Vysvetlenie:

* `#!/bin/bash`:Shebang Line, zadanie tlmočníka.

* `pre súbor v * .txt; DO ... HONT`:Loops cez všetky súbory končiace v `.txt` v aktuálnom adresári.

* `Read -p" DELETE '$ file'? (y/n) "Odpoveď":vyzve používateľa s názvom súboru a prečíta svoju odpoveď do premennej "odpovede".

* `Ak [[" $ odpoveď "==" y "]]; Potom ... fi`:Kontroluje, či je odpoveď „y“ (citlivý na prípad). Ak áno, vykoná sa „RM„ $ súbor “` na odstránenie súboru. Citácie okolo `" $ file "` sú rozhodujúce pre správne spracovanie názvov názvov s medzerami alebo špeciálnymi znakmi.

PowerShell (Windows):

`` `PowerShell

Get-childitem *.txt | Foreach-Object {

$ odpoveď =read-host "delete '$ ($ _. name)'? (y/n)"

if ($ odpoveď -eq "y") {

Odstraňovať položku $ _.

}

}

`` `

Vysvetlenie:

* `Get-childitem * .txt`:Získa všetky súbory končiace v` .txt`.

* `FOREACH-Object {...}`:iterates cez každý súbor.

* `$ _. NAME`:názov súboru.

* `$ _. FullName`:Celá cesta k súboru.

* `Read-Host" Delete '$ ($ _. Name)'? (Y/n) "`:vyzve používateľa na potvrdenie.

* `if ($ odpoveď -eq" y ") {...}`:Skontroluje, či je odpoveď „y“ (case -incitlive). Ak áno, `remove-item $ _. FullName` súbor odstráni.

Pred spustením skriptu:

1. uložte skript: Uložte kód vyššie do súboru (napr. `Delete_txt.sh` pre bash,` delete_txt.ps1` pre PowerShell).

2. Spustite `chmod +x delete_txt.sh` vo vašom termináli.

3. Spustite skript: Vykonajte skript z adresára obsahujúceho súbory `.txt, ktoré chcete odstrániť. Napríklad:`./Delete_txt.sh` (bash) alebo`. \ Delete_txt.ps1` (PowerShell).

Dôležité varovanie: Pred spustením vždy skontrolujte svoj skript. Vymazanie súborov je deštruktívna akcia. Je dobré zálohovať dôležité súbory pred spustením akéhokoľvek skriptu, ktorý ich odstráni.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené