Skrip DOS untuk menamakan semula fail

Sekiranya terdapat banyak fail dalam dokumen yang pengguna ingin menukar pelanjutan, individu boleh menggunakan arahan kelompok, yang akan mengubah pelanjutan semua fail yang serupa ke sambungan yang dikehendaki. Sebagai contoh, jika seseorang mahu menukar fail dengan lanjutan .avi ke .bmp, seseorang itu perlu memberi dua hujah dengan lanjutan 'dari' dan 'kepada' lanjutan. Jika nama fail adalah test.bat, perintah itu harus kelihatan seperti ini: test * .avi * .bmp. Perintah ini akan mengubah semua fail pelanjutan .avi ke fail sambungan .bmp. Sebagai alternatif, muat turun biterscripting dari biterscripting.com untuk menukar sambungan 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.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama