Script DOS per rinominare i file
Problema
Vorrei sapere quali comandi batch posso usare per rinominare i file nella directory chiamata \ gbr1w001data_transfer_gb77 $
INVPRT_5023949000004_20080818061329_0000979.GB ---> 5023949000004_MSG_IN_20080818061329_0000979.GB PPRHDR_5000119000006_20080721061424_00000981.GB_m ---> 5000119000006_MSG_IN_20080721061424_00000981.GB_m SLSRPT_5023949000004_20080721061317_00000978.GB ---> 5023949000004_MSG_IN_20080721061317_00000978.GB
Fondamentalmente mi piacerebbe rilasciare 7 caratteri all'inizio del file e inserire MSG_IN_ dopo i successivi 14 caratteri.
Per favore aiuto!
Soluzione
Per
/ r %% x in (% 1) do ren "%% x"% 2
Questo rinominerà il file in modo ricorsivo :-)
- Salva in un file da 2 argomenti dall'estensione e all'estensione.
- ex: il nome del file è test.bat
- comando: test * .avi * .bmp
Rinomina tutti i file con estensione avi in bmp (in tutte le sottocartelle).
Soluzione 2
Il seguente script di biters farà proprio questo. Per scaricare gratuitamente biterscripting, vai al loro sito Web all'indirizzo biterscripting.com
Salva lo script in un file chiamato C: /X.txt. Avvia biterscripting interattivo e chiama lo script esattamente come segue:
script "C: /X.txt" dir ("\ gbr1w001 \ data_transfer_gb77") schema ("INVPRT_")
Tutte le dir, i nomi dei file, i pattern sono degli esempi, usa i tuoi.
Puoi chiamare questo script su qualsiasi modello che descrivi. Oppure, puoi creare uno script master per chiamare ripetutamente questo script per ciascun pattern. Puoi farlo in modalità batch chiamando biterscripting
da un altro programma o DOS.
stex = estensore di stringhe, chex = carattere extracter, chin = inseritore di caratteri, -p = preserva la stringa originale, ] = fino a includere, ecc. Esegui un aiuto sui comandi per ottenere i dettagli. Questi sono comandi dell'editor piuttosto potenti.
Sen
# START OF SCRIPT # Dichiara argomenti di input. var str dir pattern # Raccoglie un elenco di file corrispondenti al modello. lista var str find -f $ modello $ dir> $ lista # L'elenco dei file è in $ list. Procedere uno alla volta. while ($ list "") do # Ottieni il file successivo. var str file, percorso, old_name, new_name lex "1" $ lista> $ file # Rimuovi percorso. Questo ci darà solo il nome del file in $ old_name. stex -p "^ / ^ l [" $ file> $ old_name # Dopo (ma escluso) l'ultimo / # Elimina i primi 7 caratteri. chex -p "7]" $ old_name> $ new_name # Inserisci MSG_IN_ dopo 14 caratteri. chin "14" "MSG_IN_" $ new_name> null # Stiamo usando> null perché non vogliamo vedere l'output # Vogliamo inserire MSG_IN_ in $ new_name (quindi nessuna opzione -p). script SS_SlashBack.txt ospath ($ file)> $ file # Rinomina $ file in $ new_name system rinomina $ file $ new_name # END OF SCRIPT
Nota
Grazie a satya per questo suggerimento sul forum.