পাওয়ারশেল: কমপ্যাক্ট আউটপুট সহ জিসিআই ফিল্টার


0

আমি পুনরাবৃত্তভাবে ফাইলগুলি খুঁজতে চাই এবং তার জন্য আমি ব্যবহার করছি

> gci -name -filter *.py -r

-nameপ্রয়োজন অনুসারে আইটেম প্রতি এক লাইন পাওয়া, অপশন কেবলমাত্র ফাইলের নাম দেয়। তবে আমি যে আইটেমগুলি আউটপুট হিসাবে পাই তা কেবল আপেক্ষিক পথ প্রদর্শন করে

python\scr.py

(বর্তমান দির হ'ল C:\python) একই রকম কমান্ডটি ইনcmd.exe

> where /r . *.py

দেয়

C:\data\python\scr.py

যেমনটি চেয়েছিল

এটি দিয়ে যাওয়ার কোনও উপায় আছে কি gci?

আমি পাইপিং / গ্রেপিংকে রেজেক্স / লাইক দিয়ে ন্যূনতম করতে চাই।

উত্তর:


3

আপনি কেন পাইপিংয়ের প্রতি বিরুদ্ধ তা নিশ্চিত নন, কারণ এটি পাওয়ারশেলের সবচেয়ে তাত্পর্যপূর্ণ বৈশিষ্ট্য, তবে আমি -nameপ্যারামিটারটি ছেড়ে দেব leave তারপরে, ফাইলআইএনফো অবজেক্টের পুরো Select-Objectনাম selectপেতে (ওরফে, ) ব্যবহার করুন, এবং কেবলমাত্র পূর্ণ নাম সংখ্যার -expandস্ট্রিং মান আউটপুট দিতে স্যুইচটি ব্যবহার করুন । আপনি যদি এটি সংক্ষিপ্ত রাখতে চান তবে দ্বিতীয় অবস্থানগত প্যারামিটারটি হওয়ায় আপনি এটি ছেড়েও -filter' .' যোগ করতে পারেন -Filter

gci . *.py -r| select -exp fullname

বা ব্যবহার করুন Foreach-Object(ওরফে, %বা foreach), এবং পুরো নাম আউটপুট।

gci . *.py -r| % {$_.FullName}

1
gci -filter *.py -r| select -expand fullnameসম্ভবত আপনার দ্বিতীয় বিকল্পের তুলনায় এটি পরিষ্কার which
zdan

হ্যাঁ, আমি মনে করি আপনি ঠিক জাজান ঠিক আছেন। আমি প্রথম উদাহরণে সেই সুইচটি যুক্ত করব add
রিন্যান্ট

উভয় বিকল্প ঠিক আছে।
sancho.s

0

পাইপ ব্যবহার এড়াতে, আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:

(gci -filter *.py -recurse).FullName

এটি একই প্রম্পটে কাজ করে না, যেখানে রাইন্যান্ট কাজ করেছেন উভয় বিকল্প।
sancho.s

@ সানচো.এস, উত্তরটি পাওয়ারশেল ভি 3 এবং এর জন্য কাজ করা উচিত।
রেন্যান্ট

@ রিন্যান্ট - সম্ভবত এ কারণেই, আমার মনে হয় আমার ভি 2 আছে (অনুযায়ী >$PSVersionTable.psversion)
সানচো.এস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.