λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Τύποι Επεκτάσεων Αρχείων

Ποια είναι η εντολή που θα διαγράψει όλα τα αρχεία με επέκταση TXT στον τρέχοντα κατάλογό σας, αλλά παύση σε κάθε αρχείο και ρωτήστε αν θέλετε ή αφήστε το μόνο;

Δεν υπάρχει μια ενιαία ενσωματωμένη εντολή σε κοινά κελύφη (όπως bash, zsh, powerShell) που κάνει * ακριβώς * αυτό που περιγράψατε:διαγραφή αρχείων με μια προτροπή επιβεβαίωσης για καθένα. Χρειάζεστε ένα σενάριο για να το επιτύχετε.

Ακολουθούν παραδείγματα στο Bash και το PowerShell:

bash (linux/macOS):

`` `bash

#!/bin/bash

για αρχείο στο *.txt; κάνω

διαβάστε -p "Διαγραφή '$ αρχείο'; (y/n)" απάντηση

Εάν [["$ απάντηση" =="y"]]; τότε

RM "$ αρχείο"

fi

γινώμενος

`` `

Επεξήγηση:

* `#!/bin/bash`:line shebang, καθορίζοντας τον διερμηνέα.

* για το αρχείο στο * .txt; Do ... done`:βρόχοι μέσω όλων των αρχείων που τελειώνουν στο `.txt` στον τρέχοντα κατάλογο.

* `Read -p" Διαγραφή '$ αρχείο'; (y/n) "Απάντηση`:Προτρέπει τον χρήστη με το όνομα αρχείου και διαβάζει την απάντησή του στη μεταβλητή" απάντηση ".

* `αν [[" $ απάντηση "==" y "]]; Στη συνέχεια ... FI`:Ελέγχει αν η απάντηση είναι "y" (ευαίσθητη στην περίπτωση). Εάν ναι, εκτελεί `` rm "$ αρχείο" `για να διαγράψει το αρχείο. Τα αποσπάσματα γύρω από το "File" $ "είναι ζωτικής σημασίας για τη σωστή διαχείριση των ονομάτων με χώρους ή ειδικούς χαρακτήρες.

PowerShell (Windows):

`` `PowerShell

Get-childitem *.txt | Foreach-object {

$ απάντηση =ανάγνωση-host "delete '$ ($ _. Όνομα)'? (y/n)"

αν ($ απάντηση -eq "y") {

Remove-item $ _. FullName

}

}

`` `

Επεξήγηση:

* `Get-childitem * .txt`:παίρνει όλα τα αρχεία που τελειώνουν στο` .txt`.

* `Foreach-object {...}`:επαναλαμβάνεται μέσω κάθε αρχείου.

* `$ _. Όνομα ':Το όνομα αρχείου.

* `$ _. FullName`:Η πλήρης διαδρομή προς το αρχείο.

* `Read-host" Διαγραφή '$ ($ _. Όνομα)'? (Y/N) "`:Προτρέπει τον χρήστη για επιβεβαίωση.

* `if ($ answer -eq" y ") {...}`:Ελέγχει αν η απάντηση είναι "y" (μη ευαίσθητη στην περίπτωση). Αν ναι, `remove-item $ _. Fullname` διαγράφει το αρχείο.

Πριν εκτελέσετε είτε σενάριο:

1. Αποθηκεύστε το σενάριο: Αποθηκεύστε τον παραπάνω κώδικα σε ένα αρχείο (π.χ. `delete_txt.sh 'για bash,` delete_txt.ps1` για powerShell).

2. Κάντε το εκτελέσιμο (μόνο bash): Εκτελέστε το `chmod +x delete_txt.sh 'στο τερματικό σας.

3. Εκτελέστε το σενάριο: Εκτελέστε το σενάριο από τον κατάλογο που περιέχει τα αρχεία `.txt` που θέλετε να διαγράψετε. Για παράδειγμα:`./Delete_txt.sh` (bash) ή` \ delete_txt.ps1` (PowerShell).

Σημαντική προειδοποίηση: Πάντα να ελέγχετε το σενάριό σας πριν το εκτελέσετε. Η διαγραφή αρχείων είναι μια καταστροφική δράση. Είναι καλή ιδέα να δημιουργήσετε αντίγραφα ασφαλείας σημαντικών αρχείων πριν από την εκτέλεση οποιουδήποτε σεναρίου που τα διαγράφει.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα