كيفية دفعة إعادة تسمية جزء من اسم الملف في ل 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

هنا, اسم الملف يحتوي على المسلسل # في البداية, تليها =, تليها "بيان البنك’ تليها نهاية توازن بيان.

هذه الملفات هي في بيانات بطاقة الائتمان حقيقة وكلمة "بنك’ يحتاج لتحل محلها عبارة "بطاقة الائتمان". وينبغي أن تظل كل ما تبقى من اسم الملف نفسه.

من أجل تحقيق هذا, we will be using نوافذ بوويرشيل with Regex.

لسرد كافة البيانات المصرفية, نحن نستخدم ال ls أمر, ثم أنابيب الانتاج

ليرة سورية | -newname رن {$_.name -replace('(.+)بنك(.+)','$ بطاقة 1Credit $ 2')}

يتم استخدام الأمر إعادة تسمية بعد الأنابيب لإعادة تسمية الملفات. $_ هو الكائن الذي يحمل الانتاج قبل الأنابيب, ونحن باستخدام الخاصية اسم $_ موضوع. -replace is used on strings in بوويرشيل, الذي يحل محل سلسلة مع سلسلة جديدة. -replace هي وظيفة التي تأخذ 2 المعلمات. المعلمة 1ST هي السلسلة القديمة التي نريد أن تحل محل والمعلمة 2ND هي سلسلة جديدة.

القبض على مجموعة في التعبيرات المنتظمة يسمح لنا بالاحتفاظ بأجزاء من سلسلة. في التعبيرات المنتظمة, يتم التقاط أي شيء وضعت بين قوسين لاستخدامها لاحقا. على سبيل المثال. (.+)Bank(.+) يلتقط أي شيء قبل وبعد الشخصيات البنك. يمكننا استخدام هذه الأجزاء القبض, باستخدام $ وعدد. القوس 1ST يلتقط في $1 والقوس 2ND يلتقط في $2 إلخ…

في المعلمة 1ST, نحن تحديد سلسلة القديمة التي نريد أن تحل محل, وفي الوقت نفسه نحن التقاط أجزاء من السلسلة التي نريد للحفاظ على (أسر). في المعلمة 2ND, تستخدم سلسلة جديدة الأجزاء القبض على أننا نريد للحفاظ على, فضلا عن سلسلة جديدة نفسها على سبيل المثال. '$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

اترك رد