چگونه به دسته ای بخشی از نام فایل در Windows PowerShell با استفاده عبارت منظم تغییر نام?

در این مثال, ما داریم 6 فایل های زیر را با تاریخ و نام فایل زیر:

حالت LastWriteTime نام طول
----                -------------         ------ ----
-A ----       10/06/2018     12:40              0 1 = 9.8.16 بانک 298.67.pdf بیانیه
-a ----       10/06/2018     12:40              0 2 = 9.9.16 بانک 134.74.pdf بیانیه
-a ----       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 بیانیه

اینجا, نام فایل شامل یک سریال # در آغاز, پس از =, و پس از آن بیانیه بانک’ پس از پایان موجودی در صورتحساب.

این فایل ها در اظهارات کارت اعتباری واقع و کلمه "بانک هستند’ نیاز به کلمات "کارت اعتباری جایگزین شود. همه بقیه از نام فایل باید ثابت بماند.

به منظور دستیابی به این, we will be using ویندوز PowerShell را with Regex.

برای لیست کردن تمام اظهارات بانک, ما با استفاده از ls فرمان, سپس لوله خروجی

LS | -newname ان {$_.name تعویض(،(.+)بانک(.+)،,"کارت 1Credit $ $ 2 ')}

دستور تغییر نام پس از لوله استفاده می شود به تغییر نام فایل. $_ شی که قبل از لوله دارای خروجی است, و ما با استفاده از اموال نام $_ هدف - شی. -replace is used on strings in PowerShell را, که جایگزین یک رشته با یک رشته جدید. -replace یک تابع است که طول می کشد است 2 مولفه های. پارامتر 1 رشته قدیمی است که ما می خواهیم به جای است و پارامتر 2 رشته جدید است.

گرفتن گروه در عبارت منظم اجازه می دهد تا ما بخش هایی از رشته حفظ. در عبارت منظم, هر چیزی را در پرانتز قرار است دستگیر شده است به استفاده از بعد. به عنوان مثال. (.+)Bank(.+) قطاری هر چیزی قبل و بعد از شخصیت های 'بانک'. ما می توانیم این قطعات دستگیر استفاده, با استفاده از $ و تعدادی. پرانتز 1 قطاری به $1 و پرانتز 2 قطاری به $2 و غیره…

در پارامتر 1, ما رشته قدیمی است که ما می خواهیم به جای مشخص, و در همان زمان ما ضبط بخش هایی از رشته ای که ما می خواهیم به حفظ (گرفتن). در پارامتر 2, رشته های جدید با استفاده از قطعات اسیر که ما می خواهیم به نگه داشتن, و همچنین رشته های جدید خود را به عنوان مثال. '$1Credit Card$2'.

نتیجه:

حالت LastWrite زمان نام طول
----       ---------      ----            ------   ----
-A ----     10/06/2018     12:40              0 1 = 9.8.16 کارت اعتباری 298.67.pdf بیانیه
-a ----     10/06/2018     12:40              0 2 = 9.9.16 کارت اعتباری 134.74.pdf بیانیه
-a ----     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 بیانیه

پاسخ دهید