როგორ Batch გადარქმევა ნაწილი filename in Windows PowerShell გამოყენებით Regex?

ამ მაგალითში, ჩვენ გვაქვს 6 ფაილი ქვემოთ თარიღი და ფაილის ქვემოთ:

Mode 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

აქ, ფაილის შეიცავს სერიალი # დასაწყისში, მოჰყვა =, მოყვება "ბანკის განცხადება’ მოჰყვა ბოლომდე განცხადება ბალანსი.

ეს ფაილი, ფაქტობრივად, საკრედიტო ბარათი განცხადებებისა და სიტყვა "ბანკი’ უნდა შეიცვალოს სიტყვებით "საკრედიტო ბარათი". ყველა დანარჩენი ფაილის უნდა დარჩეს იგივე.

იმისათვის, რომ მივაღწიოთ ამ, we will be using Windows PowerShell with Regex.

ჩამოვთვალოთ ყველა საბანკო განცხადებები, ჩვენ ვიყენებთ ls ბრძანება, მაშინ მილის გამომავალი

ls | ren -newname {$_.name -replace('(.+)ბანკი(.+)','$ 1Credit Card $ 2')}

გადარქმევა ბრძანება გამოიყენება შემდეგ მილის გადარქმევა ფაილი. $_ არის ობიექტი, რომელიც ფლობს გამომავალი წინაშე მილის, და ჩვენ გამოყენებით სახელი ქონებას $_ ობიექტი. -replace is used on strings in PowerShell, რომელიც ცვლის string ახალი string. -replace არის ფუნქცია, რომელიც იღებს 2 პარამეტრები. 1-ლი პარამეტრი არის წლის სიმებიანი რომ ჩვენ გვინდა, რომ შეცვალოს და მე -2 პარამეტრი არის ახალი სიმებიანი.

აღების ჯგუფების Regex საშუალებას გვაძლევს შევინარჩუნოთ ნაწილები string. in Regex, არაფერი დააყენა ფრჩხილებში ტყვედ გამოყენების შემდეგ. მაგალითად,. (.+)Bank(.+) იღებს არაფერი და მის შემდეგ გმირები "ბანკი". ჩვენ შეგვიძლია გამოვიყენოთ ეს ტყვედ ნაწილები, გამოყენებით $ და რიგი. 1-ლი ფრჩხილებში იღებს შევიდა $1 და მე -2 ფრჩხილებში იღებს შევიდა $2 და ა.შ.…

In 1 პარამეტრი, ჩვენ დააკონკრეტა ძველი string, რომ ჩვენ გვინდა შეცვლის, და ამავე დროს, ჩვენ ხელში ნაწილები string, რომ ჩვენ გვინდა, რომ შევინარჩუნოთ (ხელში). მე -2 პარამეტრი, ახალი სიმებიანი იყენებს ტყვედ ნაწილები, რომ ჩვენ გვინდა, რომ შევინარჩუნოთ, ისევე, როგორც ახალი სიმებიანი თავად მაგ. '$1Credit Card$2'.

შედეგი:

Mode 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 ანუ ----     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

დატოვე პასუხი