Mengganti bagian nama file

1

Saya memiliki banyak file pdf yang semuanya dalam format "[sesuatu] sesuatu yang lain".

Bagaimana saya bisa mengganti bagian pertama dan akhir untuk mencapai "sesuatu yang lain [sesuatu]"?

Misalnya (sebelum dan sesudah):

[P. Morandi] Field and Galois Theory
Field and Galois Theory [P. Morandi]

[D. S. Bridges] Foundations of Real and Abstract Analysis
Foundations of Real and Abstract Analysis [D. S. Bridges] 

[J. G. Ratcliffe] Foundations of Hyperbolic Manifolds
Foundations of Hyperbolic Manifolds [J. G. Ratcliffe]

[R. E. Edwards] Fourier Series - A Modern Introduction Volume 1
Fourier Series - A Modern Introduction Volume 1 [R. E. Edwards]

[B. Bollobás] Graph Theory - An Introductory Course
Graph Theory - An Introductory Course [B. Bollobás]
Irregular User
sumber
Silakan tambahkan tag untuk sistem operasi Anda.
dirkt
@dirkt Terima kasih atas pengingatnya.
Irregular User
Harap dicatat bahwa superuser.com bukan layanan penulisan skrip / kode gratis. Jika Anda memberi tahu kami apa yang telah Anda coba sejauh ini (termasuk skrip / kode yang sudah Anda gunakan) dan di mana Anda macet maka kami dapat mencoba membantu dengan masalah tertentu. Anda juga harus membaca Bagaimana saya mengajukan pertanyaan yang bagus? .
DavidPostill
@ Davidvidost Saya jauh dari menjadi seorang programmer sama sekali jadi saya tidak dapat memberikan upaya apa pun selain memotong dan menempelkan nama file secara manual seperti yang saya inginkan. Tugas seperti ini sepertinya cukup sederhana untuk diotomatisasi, tetapi saya sendiri tidak dapat membuat kode seperti itu.
Irregular User
1
Makan malam dinikmati dan jawab tertulis :)
DavidPostill

Jawaban:

2

Bagaimana saya bisa mengganti bagian pertama dan bagian akhir di sekitar?

Misalnya (sebelum dan sesudah):

[P. Morandi] Field and Galois Theory.pdf
Field and Galois Theory [P. Morandi].pdf

Gunakan file batch berikut (test.cmd):

@echo off 
setlocal enabledelayedexpansion
for /f "usebackq delims=] tokens=1,2" %%a in (`dir /b *.pdf`) do (
  rem %%b is end part of name and will become 1st part
  rem remove extension
  set _first=%%~nb
  rem remove leading space
  set _first=!_first:~1!
  ren "%%a]%%b" "!_first! %%a].pdf"
  )
endlocal  

Catatan:

  • Diuji dengan dua contoh nama file pertama dalam pertanyaan Anda.

Contoh penggunaan:

> dir *.pdf
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

02/10/2016  19:43                 0 [D. S. Bridges] Foundations of Real and Abstract Analysis.pdf
02/10/2016  19:42                 0 [P. Morandi] Field and Galois Theory.pdf
               2 File(s)              0 bytes
               0 Dir(s)  1,733,769,015,296 bytes free

> test

> dir *.pdf
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

02/10/2016  19:42                 0 Field and Galois Theory [P. Morandi].pdf
02/10/2016  19:43                 0 Foundations of Real and Abstract Analysis [D. S. Bridges].pdf
               2 File(s)              0 bytes
               0 Dir(s)  1,733,769,015,296 bytes free

Bacaan lebih lanjut

DavidPostill
sumber
Bagus sekali, terima kasih! Ini berfungsi dengan baik (dengan pengecualian penulis dengan karakter non-Inggris seperti š, tetapi ini jarang terjadi dan dapat dilakukan secara manual). Bagian bacaan lebih lanjut adalah bonus besar untuk jawaban ini & lt; masukkan beberapa pepatah tentang mengajar pria memancing & gt ;.
Irregular User
@IrregularUser Anda mungkin dapat memperbaiki karakter aneh dengan menggunakan halaman kode yang benar (saya tidak punya banyak pengalaman tentang ini). Lihat chcp - Ubah Halaman Kode konsol aktif. Halaman kode default ditentukan oleh Windows Locale.
DavidPostill