Cara bets mengubah nama bagian dari nama file di Windows PowerShell menggunakan Regex?

Dalam contoh ini, kita punya 6 file di bawah ini dengan tanggal dan nama file di bawah ini:

Mode LastWriteTime Panjang Nama
----                -------------         ------ ----
-Sebuah----       10/06/2018     12:40              0 1 = 9.8.16 Pernyataan 298.67.pdf Bank
-Sebuah----       10/06/2018     12:40              0 2 = 9.9.16 Pernyataan 134.74.pdf Bank
-Sebuah----       10/06/2018     12:41              0 3 = 9.10.16 Pernyataan 123.43.pdf Bank
-Sebuah----       10/06/2018     12:41              0 4 = 9.11.16 Pernyataan 134.54.pdf Bank
-Sebuah----       10/06/2018     12:41              0 5 = 9.12.16 Pernyataan 157.98.pdf Bank
-Sebuah----       10/06/2018     12:41              0 6 = 9.1.17 Pernyataan 123.45.pdf Bank

Sini, nama file berisi serial # pada awalnya, diikuti oleh =, diikuti oleh ‘Pernyataan Bank’ diikuti dengan akhir saldo laporan.

File-file ini berada di Laporan Kartu fakta Kredit dan kata ‘Bank’ perlu diganti dengan ‘Kartu Kredit’ kata-kata. Semua sisa nama file harus tetap sama.

Dalam rangka untuk mencapai hal ini, we will be using Jendela PowerShell with Regex.

Untuk daftar semua laporan bank, kita menggunakan ls perintah, maka pipa output

ls | -newname ren {$_.name -replace('(.+)Bank(.+)','$ 1Credit Card $ 2')}

Perintah ganti nama digunakan setelah pipa untuk mengubah nama file. $_ adalah objek yang memegang output sebelum pipa, dan kita menggunakan properti nama $_ obyek. -replace is used on strings in PowerShell, yang menggantikan string dengan string baru. -replace adalah fungsi yang mengambil 2 parameter. Parameter 1 adalah string tua yang ingin kita ganti dan 2 parameter adalah string baru.

Menangkap kelompok dalam Regex memungkinkan kita menjaga bagian dari string. dalam Regex, apapun dimasukkan ke dalam kurung ditangkap untuk digunakan kemudian. misalnya. (.+)Bank(.+) menangkap apa pun sebelum dan setelah karakter ‘Bank’. Kita bisa menggunakan bagian-bagian yang ditangkap, dengan menggunakan $ dan nomor. The 1st kurung menangkap ke $1 dan 2 kurung menangkap ke $2 dll…

Pada parameter 1, kita tentukan string tua yang ingin kita ganti, dan pada saat yang sama kita menangkap bagian-bagian dari string yang ingin kita terus (menangkap). Dalam 2 parameter, string baru menggunakan bagian-bagian yang diambil yang ingin kita terus, serta baru string itu sendiri misalnya. '$1Credit Card$2'.

Hasil:

Mode LastWrite Waktu Panjang Nama
----       ---------      ----            ------   ----
-Sebuah----     10/06/2018     12:40              0 1 = 9.8.16 Kartu Kredit Pernyataan 298.67.pdf
-Sebuah----     10/06/2018     12:40              0 2 = 9.9.16 Kartu Kredit Pernyataan 134.74.pdf
-Sebuah----     10/06/2018     12:41              0 3 = 9.10.16 Kartu Kredit Pernyataan 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Kartu Kredit Pernyataan 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Kartu Kredit Pernyataan 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Kartu Kredit Pernyataan 123.45.pdf

Tinggalkan balasan