Carane kumpulan ngganti jeneng bagéan saka filename ing Windows PowerShell nggunakake regex?
Ing conto iki, kita kudu 6 file ing ngisor iki karo tanggal lan filename ngisor:
Mode LastWriteTime Length Jeneng ---- ------------- ------ ---- -a ---- 10/06/2018 12:40 0 1 = 9.8.16 Statement 298.67.pdf Bank -a ---- 10/06/2018 12:40 0 2 = 9.9.16 Statement 134.74.pdf Bank -a ---- 10/06/2018 12:41 0 3 = 9.10.16 Statement 123.43.pdf Bank -a ---- 10/06/2018 12:41 0 4 = 9.11.16 Statement 134.54.pdf Bank -a ---- 10/06/2018 12:41 0 5 = 9.12.16 Statement 157.98.pdf Bank -a ---- 10/06/2018 12:41 0 6 = 9.1.17 Statement 123.45.pdf Bank
kene, filename ngandhut sun # ing awal, ngiring dening =, ngiring dening 'Statement Bank’ ngiring dening mburi imbangan statement.
Berkas-berkas iki ing statements Card kasunyatan Credit lan tembung 'Bank’ perlu diganti dening 'Kartu Kredit' ing tembung. Kabeh liyane filename kudu tetep padha.
Supaya entuk iki, kita bakal nggunakake Windows PowerShell karo regex.
Kanggo dhaptar kabeh statements bank, digunakake ls printah, banjur pipe output
ls | -newname ren {$_.name -replace('(.+)Bank(.+)','$1Credit Card$2')}
Printah jeneng digunakake sawise pipo kanggo ngganti jeneng file. $_ obyek sing ngemu output sadurunge pipo, lan kita nggunakake properti jeneng $_ obyek. -replace digunakake ing strings ing PowerShell, kang nggantèkaké senar karo senar anyar. -replace iku fungsi sing njupuk 2 paramèter. Parameter 1st punika senar lawas sing pengin kita kanggo ngganti lan 2 parameter punika senar anyar.
Njupuk kelompok ing regex ngidini kita tetep bagean saka senar. ing regex, apa sijine ing parenthesis dijupuk nggunakake mengko. contone. (.+)Bank(.+) nelukaké apa sadurunge lan sawise karakter 'Bank'. Kita bisa nggunakake iki bagéan dijupuk, kanthi nggunakake $ lan nomer. 1st parenthesis nelukaké menyang $1 lan 2 parenthesis nelukaké menyang $2 etc…
Ing parameter 1st, kita nemtokake senar lawas sing pengin kita kanggo ngganti, lan ing wektu sing padha kita dijupuk bagéan saka senar sing pengin kita tetep (Jupuk). Ing 2 parameter, senar anyar nggunakake bagean dijupuk sing pengin kita tetep, sarta anyar senar dhewe eg. '$1Credit Card$2'.
Result:
Mode LastWrite Wektu Length Jeneng ---- --------- ---- ------ ---- -a ---- 10/06/2018 12:40 0 1 = 9.8.16 Kartu Kredit Statement 298.67.pdf -a ---- 10/06/2018 12:40 0 2 = 9.9.16 Kartu Kredit Statement 134.74.pdf -a ---- 10/06/2018 12:41 0 3 = 9.10.16 Kartu Kredit Statement 123.43.pdf -a ---- 10/06/2018 12:41 0 4 = 9.11.16 Kartu Kredit Statement 134.54.pdf -a ---- 10/06/2018 12:41 0 5 = 9.12.16 Kartu Kredit Statement 157.98.pdf -a ---- 10/06/2018 12:41 0 6 = 9.1.17 Kartu Kredit Statement 123.45.pdf
