উইন্ডোজ সমতুল্য ls * (asterisk) ডিরেক্টরি ওয়াইল্ডকার্ডিং?


14

দীর্ঘকালীন ইউনিক্স / লিনাক্স ব্যবহারকারীর কাছ থেকে আর একটি প্রশ্ন যিনি নিজেকে উইন্ডোজ বিশ্বে আবিষ্কার করেন। প্রথমে আমি ঠিক করার চেষ্টা করছি আমি কী করতে চাইছি। আমি উইন্ডোজ সেমিডি.এক্সি শেলটি ব্যবহার করছি, এবং আমি বর্তমান ডিরেক্টরি নীচে থাকা সমস্ত ডিরেক্টরি তালিকাতে চাইছি যেখানে একটি বিন \ ডিবাগ হায়ারার্কি রয়েছে এবং এটি নির্ধারণ করতে চাই যে সেগুলিতে কোনও ফাইল রয়েছে কিনা (উদাহরণস্বরূপ: আমার ন্যান্ট ক্লিন টার্গেট কিনা তা নির্ধারণের চেষ্টা করা হচ্ছে) সঠিকভাবে কাজ করছে). আমার শ্রেণিবিন্যাস কিছু দেখতে পারে:

\Current
    \DirA
         \bin
             \Debug
                  (some files under debug)
             \Release
    \DirB
         \bin
             \Debug
    \DirC
         \bin
             \Release

ইউনিক্সে, ls */bin/Debugআমাকে কেবলমাত্র সমস্ত জিনিসপত্রের একটি তালিকা দেবে DirA/bin/Debugএবং আমাকে DirB/bin/Debugফাঁকা থাকা সত্যটি প্রদর্শন করবে । আমি সিএমডি শেলটিতে বিভিন্ন সংযোজন চেষ্টা করেছি, তবে এ জাতীয় জিনিসগুলি দিয়ে চালিয়ে যেতে থাকি:

    > দির * \ বিন \ ডিবাগ
    ফাইলের নাম, ডিরেক্টরি নাম, বা ভলিউম লেবেল বাক্য গঠন ভুল is

    > দির * \ * \ *
    ফাইলের নাম, ডিরেক্টরি নাম, বা ভলিউম লেবেল বাক্য গঠন ভুল is

দির আদেশ সম্পর্কে আমি কিছু সূক্ষ্ম বুঝতে পারি না, বা এটি কেবল সেভাবেই সীমাবদ্ধ?

হ্যাঁ, আমি বুঝতে পেরেছি যে আমি সন্ধান করতে পারি, নেভিগেট করতে, ডান ক্লিক করতে পারি এবং সম্ভবত শেষ পর্যন্ত এমন একটি অনুসন্ধান তৈরি করি যা আমি যা চাই তা করতে পারি তবে আমি দ্রুত-এন-নোংরা কমান্ড-লাইন সমাধানে আরও আগ্রহী।


যদিও উইন্ডোজটিতে আমি ইউনিক্সের মতো সমস্ত সরঞ্জাম যোগ করতে পারি (এবং বিশ্বাস করুন যে আমি ঘরে সাইগউইন ব্যবহার করি!), আমি যেখানেই যাই না কেন এগুলি সবসময়ই উপলব্ধ করব না (এবং সম্ভবত প্রশাসনের অধিকার নাও থাকতে পারে) আমি ব্যবহার করি এমন প্রতিটি পিসিতে সেগুলি ইনস্টল করুন)।
ওগ্রে গীতসংহিতা 33

উত্তর:


13

এর মতো কিছুতে আপনার যা করা উচিত তা করা উচিত। প্রকল্পের মূল ডিরেক্টরিতে:


c:\path\to\slndir>dir *.dll *.exe /s /b | findstr /i "bin\debug"

দির যুক্তি: / গুলি - পুনরাবৃত্তি, / বি - "খালি", কোনও অতিরিক্ত তথ্য
সন্ধানকারী আর্গুমেন্ট: / i - কেস উপেক্ষা করুন

সাধারণভাবে, 'হেল্প কমান্ড ' শেল কমান্ডগুলির জন্য সহায়তা প্রদর্শন করবে। যদি এটি কাজ না করে, তবে
' কমান্ড /?' সাধারণত সাহায্য প্রদর্শন করবে।


অসাধারণ! আমি বুঝতে পেরেছি যে আমার উইন্ডোজটিকে "লিনাক্সাইজ" করতে সাহায্য করার জন্য অনেকগুলি সরঞ্জাম / টুলকিট রয়েছে, তবে আমি যা করার চেষ্টা করছি তা করার জন্য আমি উইন্ডোজ উপায়টি খুঁজছিলাম, এবং এটি ঠিক এটিই!
ওগ্রে গীতসংহিতা 33

7

লিনাক্স যেভাবে উইন্ডোজ ওয়াইল্ডকার্ড করে না। কেবল ফাইলের অংশে ওয়াইল্ডকার্ড থাকতে পারে।

আপনি উইন্ডোজে চালিত এলএস এর একটি সংস্করণ ডাউনলোড করতে পারেন এবং এটি ব্যবহার করতে পারেন। আমি সাইগউইন ব্যবহার করেছি , তবে আমি নিশ্চিত যে আরও কিছু আছে।


এছাড়াও পাওয়ারশেল
জোয়েল কোহোর্ন

3
আরেকটি বিষয় মনে রাখবেন: উইন্ডোজ ওয়াইল্ডকার্ডগুলি শেল দ্বারা নয়, কমান্ড দ্বারা প্রসারিত হয়।
লরেন্স গনসাল্ভেস 21

2

unxutils এর একটি ls কমান্ড রয়েছে। সমস্যাটি আসলে উইন্ডোজ শেলটি নিয়েই। ইউনিক্সে আপনার শেল */bin/Debugপ্রাসঙ্গিক পথের নামগুলিতে প্রসারিত হবে এবং এটিকে আলাদা কমান্ড-লাইন আর্গুমেন্ট হিসাবে ls কমান্ডে খাওয়াবে।

Cygwin অবশ্যই তোমার জন্য কৌতুক করতে হবে, অথবা আপনি একটি UNIX একটি জানালা বন্দর যেমন শেল চেষ্টা করে দেখতে পারেন ব্যাশ । আপনি যদি স্ক্রিপ্টিং রুটে যেতে চান, আপনি গ্লোব মডিউলটি ব্যবহার করে খুব সহজেই অজগরটিতে কিছু কোড আপ করতে পারতেন এবং বেশিরভাগ অন্যান্য স্ক্রিপ্টিং ভাষার সমতুল্য ছিল।


2

আপনি "dir / s * .obj * lib" এর মতো কিছু করতে পারেন। এটি কতগুলি ফাইলের সাথে মিলছে তার শেষে একটি সংক্ষিপ্তসার দেবে।


বন্ধ করুন। আমি আপনাকে প্রপস দিয়েছিলাম, কিন্তু জেমসের উত্তরটি নিকটে, কারণ এটি আমার জন্য ডিবাগের নিচে নয় এমন ফাইলগুলি ফিল্টার করে ।
ওগ্রে গীতসংহিতা 33

2
@for /D /r %P in (.) do @for %Q in ("%~fP\bin\Debug\*") do @echo %~ftzaQ

সুন্দর না, তবে কাজ করা উচিত। আপনি একটি। সিএমডি ফাইলও রাখতে পারেন (তারপরে প্রতি একক% কে ডাবল%% এ প্রতিস্থাপন করুন)। অথবা ডসকি ব্যবহার করে ম্যাক্রো সংজ্ঞায়িত করুন (হ্যাঁ, এটি এখনও বিদ্যমান)।

নিশ্চিত করুন যে সিএমডি এক্সটেনশনগুলি সক্ষম হয়েছে।

সম্পাদনা: এটি কীভাবে কাজ করে:

লুপের জন্য প্রথমটি সমস্ত উপ-ডিরেক্টরিতে (/ ডি এবং / আর স্যুইচ) পুনরাবৃত্তভাবে পুনরাবৃত্তি করে। % ~ fP ডিরেক্টরিটির পুরো পথে প্রসারিত হয়। তারপরে এটি \ বিন \ ডিবাগ *কে সেই পথে যুক্ত করে। লুপের জন্য দ্বিতীয়টি মিলে যায় এমন সমস্ত ফাইলকে গণনা করে। % ~ ftzaQ প্রতিটি ফাইলের ম্যাচে প্রসারিত হয় এবং প্রতিধ্বনি দ্বারা স্ক্রিনে মুদ্রিত হয়। অদ্ভুত% t ftzaQ এটিকে একটি ডির আউটপুটের মতো ফর্ম্যাট করে। @ চরিত্রটি এড়ানো যায় যে কমান্ডগুলি নিজেই স্ক্রিনে মুদ্রিত হয়।

আরও জন্য, দেখুন


আমি এটি চেষ্টা করেছি এবং সত্যই এটি কাজ করে। তবে সিএমডি শেলটিতে কিছুটা অনভিজ্ঞ হওয়ায় আমি এখনও এগুলি পুরোপুরি বুঝতে পারি না :-)।
ওগ্রে গীতসংহিতা 18

0

উইন্ডোজ দুনিয়াতে cmd.exe ওয়াইল্ডকার্ডগুলি প্রসারিত করে না - তারা এর কমান্ড লাইনে বা আরজিভি অ্যারেতে প্রোগ্রাম হিসাবে যেমন পাস করে। সুতরাং প্রতিটি প্রোগ্রাম পৃথকভাবে পার্স করে এবং প্রসারিত করে এবং আরও কিছু উন্নত ব্যবহার (যেমন আপনি খুঁজছেন) সাধারণত সমর্থিত নয়।

সাইগউইন ব্যবহারের টিমগিলবার্টের পরামর্শটি ভাল, এছাড়াও জিএনইউউইন 32 প্যাকেজে এমন কিছু থাকতে পারে যা আপনাকে সাহায্য করবে।

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