আমি ইমেজ (* .png এবং * .jpg) সঙ্গে ফোল্ডার আছে
>C:\Directory\Folder1
01.png
02.png
03.jpg
04.jpg
05.png
এবং আমি ক্ষমতাশালী ব্যবহার করে এই ধরনের সব ফাইল পুনঃনামকরণ করতে চাই:
>C:\Directory\Folder1
Folder1 - 01.png
Folder1 - 02.png
Folder1 - 03.jpg
Folder1 - 04.jpg
Folder1 - 05.png
তাই আমি এই সহজ লাইন দিয়ে এসেছি:
Get-ChildItem | Where-Object { $_.Extension -eq ".jpg" -or $_.Extension -eq ".png"} | rename-item -newname {$_.Directory.Name +" - " + $_.Name}
আমার যদি ফোল্ডারে 35 বা তার কম ফাইল থাকে, তবে আমার কাছে চেয়েছিলেন ফলাফল, কিন্তু যদি থাকে 36 বা তার বেশি ফাইল, আমি এই সঙ্গে শেষ হবে:
>C:\Directory\Folder1
Folder1 - Folder1 - Folder1 - 01.png
Folder1 - Folder1 - Folder1 - 02.png
Folder1 - Folder1 - Folder1 - 03.jpg
Folder1 - Folder1 - Folder1 - 04.jpg
Folder1 - Folder1 - Folder1 - 05.png
যখন ফাইলটির নাম 248 অক্ষর অতিক্রম করে তখন লুপ থামে।
কোন ধারণা কেন এটা looping হয়?
সম্পাদনা করুন: প্রস্তাবিত হিসাবে, ফোল্ডারটির নাম ইতিমধ্যে ফাইলের নামটিতে যোগ করা হয়েছে কিনা তা পরীক্ষা করার জন্য একটি সহজ সমাধান:
Get-ChildItem | Where-Object { $_.Extension -eq ".jpg" -or $_.Extension -eq ".png" -and !$_.Name.StartsWith($_.Directory.Name) } | rename-item -newname {$_.Directory.Name +" - " + $_.Name}
কিন্তু ফোল্ডারে 36 টিরও বেশি ফাইল থাকলে এটি লুপ করা কেন তা আমাকে বলে না।