BAT εντολή για την εισαγωγή ενός char. σε ένα όνομα αρχείου
Θέμα
Έχω ένα πρόβλημα, ένα που η λύση του έχω περάσει πριν από μερικά χρόνια, αλλά - δυστυχώς - η αποθήκευση μου κατέρρευσε πρόσφατα και έχασα το αρχείο δέσμης!
Ξεκινάμε με αυτό το άβολο όνομα αρχείου:
rank (όλα) _so2_1hr_conc_A_2p5h10.dat
Το ακόλουθο βοηθητικό πρόγραμμα ΒΔΤ διαγράφει έξυπνα τα πάντα μπροστά από το «Α» (23 πρώτοι χαρακτήρες):
@echo off για %% i in (* .dat) κάνει (ορίστε fName = %% i) και καλέστε: μετονομασία goto: eof: μετονομασία :: Καλλιεργεί τους πρώτους 23 χαρακτήρες του fName ('rank (all) _so2_1hr_conc_' ren% fName%% fName: ~ 23% goto: eof
Μεγάλος! Αυτό αποδίδει:
A_2p5h10.dat
Τώρα πρέπει να το μετατρέψω σε:
A_2p5h100.dat
Σημείωση '... h10' πρέπει να είναι '... h100'. Σημειώστε ότι, ενώ σε αυτό το παράδειγμα, το τμήμα που προηγείται του '.' είναι 'A_2p5h10', θα μπορούσε να είναι οποιαδήποτε συμβολοσειρά 8 χαρακτήρων (οπότε θα χρειαστούμε ένα μπαλαντέρ ή κάτι τέτοιο).
Μπορείτε να προτείνετε μια ρουτίνα που θα προσθέσει το '0' στο μέσο του ονόματος του αρχείου (πριν από το '.'); Υπάρχουν εκατοντάδες ονόματα αρχείων στον κατάλογο που πρέπει να έχουν αυτή τη μετατροπή.
Όπως θυμάμαι, η κρίσιμη εντολή (πιστεύω ότι χρησιμοποίησε το REN) που το χρησιμοποιούσαμε ήταν εξαιρετικά απλή (περιείχε ένα περισσότερο ποσοστό, όπως θυμάμαι).
Λύση
Μπορείτε να χρησιμοποιήσετε αυτό το σενάριο:
@echo off για %% i in (* .dat) κάνουμε (set fName = %% i) & κλήση: μετονομασία goto: eof: μετονομασία :: Μετονομάστε το αρχείο απορρίπτοντας τους πρώτους 23 χαρακτήρες και τις τελευταίες 7 και προσθέτοντας H100.plt στο τέλος ren% fName%% fName: ~ 23, -7% H100.plt goto: eof
Σημείωση
Χάρη στον Tommy για αυτή την άκρη στο φόρουμ.