ক্ষমতাশক্তি মধ্যে হাইফেন প্রথম ঘটনার সব ফাইলের নাম পরিবর্তনশীল স্ট্রিং মুছে ফেলুন


0

PowerShell এ হাইফেনের প্রথম সংঘটিত হওয়া পর্যন্ত আমি কীভাবে সমস্ত ফাইলের নামগুলিতে পরিবর্তনশীল স্ট্রিংটি সরাতে পারি?

আমার কাছে একই ফোল্ডারে ফাইলগুলির একটি তালিকা রয়েছে:

picture_1_2017 -01-02_abc.jpg
 ছবি_10_2017 -01-03_dfc.jpg
 ছবি_111_2017 -01-04_এসডিএফসিজিপিপি
 ছবি_20_2017 -01-05_ঘ।
 jpg ছবি_354_2017 -01-06_asfd.jpg
...

আমি " 2017 " দ্বারা প্রথম " হাইফেন " পর্যন্ত সবকিছু প্রতিস্থাপন করতে চাই । উদাহরণস্বরূপ, "প্রতিস্থাপন করতে picture_10_2017 " "দ্বারা 2017 " এবং নামের বিশ্রাম ছেড়ে যেমন ফাইলের পরবর্তী তালিকা গ্রহণ করা:

2017-01-02_abc.jpg
2017-01-03_dfc.jpg
2017-01-04_sdfc.jpg
2017-01-05_gh.jpg
2017-01-06_asfd.jpg

কিভাবে আমি PowerShhell বা অন্য কোন সরঞ্জাম দ্বারা উইন্ডোতে যে করতে পারি?


এটি কি picture_*_আপনার ক্ষেত্রে উপসর্গ মুছে ফেলার মতো , নাকি সেখানে বৈচিত্র আছে?
গ্রীষ্ম

হ্যাঁ, আমি যা করতে চাই। টেক্সট একই থাকে, শুধুমাত্র সংখ্যা * পরিবর্তিত হয়। কোন সমাধান?
মাইকেল_জেনা

উত্তর:


0

থেকে এই আগের প্রশ্ন , ভর-পুনঃনামকরনের ফাইল জন্য সামগ্রিক গঠন:

Get-ChildItem <glob> | foreach { Rename-Item $_ <newname> }

প্রতিটি আইটেমের তার আসল নাম সংরক্ষিত থাকে এবং $_.Nameনিয়মিত নির্দিষ্ট-স্ট্রিংয়ের সময়। প্রতিস্থাপন () পদ্ধতিটি যথেষ্ট নয়, নিয়মিত এক্সপ্রেশন ব্যবহার করুন।

PowerShell এর মধ্যে, আপনি Regex- ভিত্তিক প্রতিস্থাপন () দুটি উপায়ে অ্যাক্সেস করতে পারেন:

  • [regex]::Replace($str, $regex, $replacement)
  • $str -replace $regex, $replacement

শুধু উপসর্গ মুছে ফেলার জন্য

Regex ^picture_\d+_অবাঞ্ছিত উপসর্গ মেলে হবে; কিছুই দিয়ে প্রতিস্থাপন করুন।

দুই সংমিশ্রণ করার পর:

Get-ChildItem *.jpg | % { Rename-Item $_ ([regex]::Replace($_.Name, "^picture_\d+_", "")) }

Get-ChildItem *.jpg | % { Rename-Item $_ ($_.Name -replace "^picture_\d+_", "") }

বিকল্পভাবে, প্রশ্নটি ^[^-]*-মেলে, প্রথম ড্যাশে (এবং সহ) সবকিছু মিলবে; এটি দিয়ে প্রতিস্থাপন করুন "2017-"(সমস্ত ফাইলগুলি একই বছরের থেকে নেওয়া হয় - অন্যথায় আপনি ঘটনাক্রমে তথ্য হারাতে পারেন)।

মূল অংশ সঙ্গে প্রতিস্থাপন

আপনি আসল পাঠের অংশটি ( )ব্যবহার করে এটি ব্যবহার করতে পারেন এবং প্রতিস্থাপন হিসাবে এটি ব্যবহার করতে পারেন $1($ 2, $ 3 ...) এটি আপনার ক্ষেত্রে একই চূড়ান্ত ফলাফল দেবে, তবে আপনি মূলত যা জিজ্ঞাসা করেছিলেন তার সাথে আরও ঘনিষ্ঠভাবে মিলিত হবে।

উদাহরণস্বরূপ, regex "^picture_\d+_(\d+)-"এবং প্রতিস্থাপন '$1-'(একক উদ্ধৃত করা আবশ্যক)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.