এখানে প্রথমবারের জন্য পাওয়ারশেল ব্যবহার করা হচ্ছে, সুতরাং দয়া করে আমার উপর সহজ হয়ে যান ...
আমি একটি স্ক্রিপ্ট লিখেছি যা ডিরেক্টরি যাচাই করে এবং কোনও ডিরেক্টরি ডিরেক্টরিতে খালি থাকে, এটি মুছতে হবে। আমার যে সমস্যাটি হচ্ছে তা হ'ল ডিরেক্টরি নামের ব্র্যকেটগুলি -> [] সহ directories ডিরেক্টরিটি খালি না হলেও, এটি এখনও মুছে ফেলা হচ্ছে। কেউ সাহায্য করতে পারেন? আমি যে কোডটি ব্যবহার করছি তা এখানে:
$path = "C:\path\to\directory"
Get-ChildItem -Path $path -Recurse -Force | Where-Object { $_.PSIsContainer -and (Get-ChildItem -Path $_.FullName -Recurse -Force | Where-Object { !$_.PSIsContainer }) -eq $null } | Remove-Item -Force -Recurse
আমি উপরের কোডটি পুরোপুরি বুঝতে পারি না, আমি এটি অনলাইনে খুঁজে পেয়েছি। কিন্তু এটি এমন ডিরেক্টরিগুলির জন্য কাজ করছে যা বন্ধনী নেই।
" সামারফোটস " নামের একটি ডিরেক্টরিতে যে কোনও ফাইল রয়েছে, ডিরেক্টরিটি মুছে ফেলা হয় না। -> ভাল
যে ডিরেক্টরিটি খালি রয়েছে তার জন্য এটি মুছে ফেলা হয়েছে। -> ভাল
" সামারফোটস [২০০৯] " নামের একটি ডিরেক্টরিতে এটি ফাইল থাকা সত্ত্বেও এটি মুছে ফেলা হচ্ছে। -> খারাপ
আমি গুগল করেছিলাম এবং পড়েছিলাম যে পাওয়ারশেল বন্ধনীগুলিকে ওয়াইল্ডকার্ড হিসাবে ব্যবহার করে, তবে কীভাবে এটি ঘটাব সে সম্পর্কে আমি নিশ্চিত নই। কোন সাহায্য প্রশংসা করা হবে।
ধন্যবাদ!
[]
একটি সীমার বোঝাতে, এড়াতে এই ব্যবহার করবেন না -Path
কিন্তু -LiteralPath
কোথায়-Ob ject ভিতরে
-Recurse
প্রথম স্থানে ব্যবহার করছেন ?