बॅच कसे Regex वापरून Windows PowerShell मध्ये फाइलनाव भाग नाव बदला?

या उदाहरणात, आम्ही 6 तारीख आणि खाली फाइलनाव खाली फाइल्स:

मोड LastWriteTime लांबी नाव
----                -------------         ------ ----
-एक ----       10/06/2018     12:40              0 1 = 9.8.16 बँक स्टेटमेंट 298.67.pdf
अर्थात ----       10/06/2018     12:40              0 2 = 9.9.16 बँक स्टेटमेंट 134.74.pdf
अर्थात ----       10/06/2018     12:41              0 3 = 9.10.16 बँक स्टेटमेंट 123.43.pdf
अर्थात ----       10/06/2018     12:41              0 4 = 9.11.16 बँक स्टेटमेंट 134.54.pdf
अर्थात ----       10/06/2018     12:41              0 5 = 9.12.16 बँक स्टेटमेंट 157.98.pdf
अर्थात ----       10/06/2018     12:41              0 6 = 9.1.17 बँक स्टेटमेंट 123.45.pdf

येथे, फाइलनाव सिरियल आहे # सुरवातीला, = त्यानंतर, 'बँक स्टेटमेंट त्यानंतर’ विधान शिल्लक शेवटी त्यानंतर.

या फायली खरं क्रेडिट कार्ड स्टेटमेन्ट आणि शब्द 'बँक आहेत’ शब्द 'क्रेडिट कार्ड' बदलले करावा. फाइलनाव सर्व उर्वरित समान राहू नये.

हे साध्य करण्यासाठी, आम्ही Regex सह Windows PowerShell वापर करण्यात येणार आहे.

सर्व बँक स्टेटमेन्ट यादी करणे, आम्ही वापर ls आदेश, नंतर उत्पादन पाईप

ls | मूत्रपिंड -newname {$_.name -replace('(.+)बँक(.+)','$1Credit Card$2')}

पुनर्नामित आदेश फाइल पुनर्नामित करण्यात पाईप वापरली जाते. $_ पाईप आधी उत्पादन वस्तू ऑब्जेक्ट आहे, आणि आम्ही नाव मालमत्ता वापरत आहात $_ ऑब्जेक्ट. -replace PowerShell मधील स्ट्रिंग वापरले जाते, जे नवीन स्ट्रिंग एक स्ट्रिंग बदलवून. -replace लागतात कार्य आहे 2 मापदंड. 1 घटक आम्ही बदलु इच्छिता की जुन्या स्ट्रिंग आहे आणि 2 घटक नवीन स्ट्रिंग आहे.

Regex गट संकलन आम्हाला स्ट्रिंग भाग ठेवा परवानगी देतो. Regex मध्ये, कंसात काहीही नंतर वापर करण्यासाठी मिळविले आहे. उदा. (.+)Bank(.+) आधी आणि वर्ण 'बँक' नंतर काहीही ओळख. आम्ही मिळविले भाग वापरू शकता, वापरून $ आणि एक नंबर. 1 कंस मध्ये ओळख $1 आणि 2 कंस मध्ये ओळख $2 इ…

1 घटक मध्ये, आम्ही जुन्या स्ट्रिंग आम्ही बदलु इच्छिता हे निर्दिष्ट, आणि त्याच वेळी आम्ही ठेवू इच्छित स्ट्रिंग भाग काबीज (कॅप्चर). 2 घटक मध्ये, नवीन स्ट्रिंग मिळविले भाग आम्ही ठेवू इच्छित वापर करते, तसेच नवीन स्ट्रिंग स्वतः उदा. '$1Credit Card$2'.

निकाल:

मोड LastWrite वेळ लांबी नाव
----       ---------      ----            ------   ----
-एक ----     10/06/2018     12:40              0 1 = 9.8.16 क्रेडिट कार्ड स्टेटमेंट 298.67.pdf
अर्थात ----     10/06/2018     12:40              0 2 = 9.9.16 क्रेडिट कार्ड स्टेटमेंट 134.74.pdf
अर्थात ----     10/06/2018     12:41              0 3 = 9.10.16 क्रेडिट कार्ड स्टेटमेंट 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 क्रेडिट कार्ड स्टेटमेंट 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 क्रेडिट कार्ड स्टेटमेंट 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 क्रेडिट कार्ड स्टेटमेंट 123.45.pdf