Skrip DOS untuk menamakan semula fail
Isu
Saya ingin tahu apa perintah batch yang boleh saya gunakan untuk menamakan semula fail dalam direktori bernama \ 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
Pada dasarnya saya ingin menggugurkan 7 aksara pada permulaan fail dan memasukkan MSG_IN_ selepas seterusnya 14 aksara.
Tolong bantu!
Penyelesaian
Untuk
/ r %% x (% 1) lakukan ren "%% x"% 2
Ini akan menamakan semula fail rekursif :-)
- Simpan dalam fail memberi 2 hujah dari lanjutan dan lanjutan.
- ex: nama fail ialah test.bat
- perintah: test * .avi * .bmp
Ia mengubah nama semua fail dengan pelanjutan avi ke bmp (dalam semua subfolder).
Penyelesaian 2
Skrip biterscripting berikut akan berbuat demikian. Untuk memuat turun biterscripting percuma, pergi ke laman web mereka di biterscripting.com
Simpan skrip dalam fail bernama C: /X.txt. Mula biterscripting interaktif dan panggil skrip tepat seperti berikut:
skrip "C: /X.txt" dir ("\ gbr1w001 \ data_transfer_gb77") corak ("INVPRT_")
Semua dir, nama fail, corak adalah contoh, gunakan sendiri.
Anda boleh memanggil skrip ini pada corak yang anda gambarkan. Atau, anda boleh membuat skrip induk untuk berulang kali memanggil skrip ini untuk setiap corak. Anda boleh melakukan ini dalam mod batch dengan memanggil biterscripting
dari program lain atau DOS.
stex = pengekstraksi tali, chex = watak watak, chin = pengintipan watak, -p = memelihara rentetan asal, ] = upto dan termasuk, dan sebagainya. Lakukan bantuan pada arahan untuk mendapatkan butiran. Ini adalah perintah editor yang agak berkuasa.
Sen
# START OF SCRIPT # Deklarasikan hujah input. var str dir pattern # Kumpulkan senarai fail yang sepadan dengan corak. senarai var str find -f $ pattern $ dir> $ list # Senarai fail berada dalam senarai $. Memproses satu demi satu. sementara ($ senarai "") lakukan # Dapatkan fail seterusnya. var str file, path, old_name, new_name lex "1" $ list> $ file # Remove path. Ini akan memberi kita hanya nama fail dalam $ old_name. stex -p "^ / ^ l [" $ file> $ old_name # After (but excluding) yang terakhir / # Dropkan 7 karakter pertama. chex -p "7]" $ old_name> $ new_name # Masukkan MSG_IN_ selepas 14 aksara. # 14 "" MSG_IN_ "$ new_name> null # Kami menggunakan> null kerana kita tidak mahu melihat output # Kami ingin memasukkan MSG_IN_ ke $ new_name (dengan itu tiada pilihan -p). skrip SS_SlashBack.txt ospath ($ file)> $ file # Namakan semula $ file ke $ new_name system rename $ file $ new_name # END OF SCRIPT
Catatan
Terima kasih kepada satya untuk hujung ini di forum.