আমি কীভাবে "* .xyz" এ পরিচালিত করতে "দির" এবং "অনুলিপি" কমান্ড পেতে পারি তবে "* .xyz ~" নয়?


4

আমি যখন copy *.txt somefolder\সিস্টেমটি ব্যবহার করি তখন মনে হয় সমস্ত *.txt~ফাইলও অনুলিপি করে যা আমি চাই না। একই একই প্রভাব দেখা যায় dir:

C:\Users\Paul\Documents\Programs\Proffy>dir *.txt
 Volume in drive C is Vista
 Volume Serial Number is EC23-AD6B

 Directory of C:\Users\Paul\Documents\Programs\Proffy

29/11/2008  13:54            35,821 COPYING.txt
31/10/2009  21:54             1,644 INSTRUCTIONS.txt
06/06/2009  15:57             1,393 INSTRUCTIONS.txt~
04/01/2009  11:59               116 Notes.txt
19/04/2009  16:53               134 README.txt
04/01/2009  12:42               132 README.txt~
31/10/2009  21:30               197 TODO.txt
31/10/2009  19:10               414 TODO.txt~
               8 File(s)         39,851 bytes
               0 Dir(s)  41,938,862,080 bytes free

C:\Users\Paul\Documents\Programs\Proffy>

আমি কীভাবে পেতে পারি dirএবং copyকেবল সেই ফাইলগুলিতে অপারেট করতে পারি যা শেষ হয় .txtএবং না .txt~?


1
আমি যখন প্রথম এই প্রশ্নটি দেখেছি, তখন আমি ভেবেছিলাম 'হ্যাঁ, এটি দরকারী এবং পরিষ্কার "তাই আমি এটিকে উত্সাহিত করেছি। তারপরে আমি একটি উত্তর যুক্ত করতে শুরু করি যা এই সিদ্ধান্তে এসেছিল 'তারা আপনাকে পুনরায় নামকরণ বা মুছানোর জন্য মনে করিয়ে দেওয়ার জন্য বিশেষ হিসাবে বিবেচিত হচ্ছে'। আমি যখন সম্পাদনা করছিলাম, তখন কেউ আমাকে কীভাবে কমিয়ে দিয়েছে তা ব্যাখ্যা করার জন্য কোনও মন্তব্য ছাড়াই। এটি আমার মুখে অদ্ভুত স্বাদ ফেলে, তবে আমি 'সাহায্য চাইনি' বার্তাটি পেয়েছি।
প্যাভিয়াম

উত্তর:


5

দৃশ্যত শেলটি ওয়াইল্ডকার্ড প্রসারণের জন্য ছোট এবং দীর্ঘ নাম উভয়ই বিবেচনা করে । Shf301 এর উত্তরে দীর্ঘ ব্যাখ্যা পাওয়া যাবে । এটি দুর্ভাগ্যজনক এবং সম্ভবত ডসের ইয়ে ওল্ডে দিনগুলির একটি বাম-ওভার কারণ cmdসর্বোপরি — সাজানোর with সাথে সামঞ্জস্য হওয়ার চেষ্টা করছে।

বেশ কয়েকটি বিকল্প এখানে:

  1. ব্যবহার করুন forfiles, যা ওয়াইল্ডকার্ড সম্প্রসারণের জন্য আলাদা অর্থপূর্ণ রয়েছে:

    forfiles /m *.txt /c "cmd /c copy @file foo"
    

    এটি কমপক্ষে ভিস্তার ও পরে পাওয়া যায়।

  2. forএক্সটেনশনটি ব্যবহার করুন এবং পরীক্ষা করুন:

    for %a in (*.txt) do @if %~xa==.txt @copy "%i" foo
    

    দুর্ভাগ্যক্রমে যখন কেবল ওয়াইল্ডকার্ড প্রসারণ ব্যবহার forকরা হয় তখন .txt~এক্সটেনশন সহ কোনও ফাইলও ফেরত দেয় । এজন্য আমাদের দ্বিতীয়বার এক্সটেনশনটি পরীক্ষা করা দরকার।

  3. ব্যবহার xcopyxcopyশেলের মতো ওয়াইল্ডকার্ড প্রসারণের জন্য একই শব্দার্থতত্ত্ব থাকলেও আপনি এড়িয়ে যাওয়ার জন্য নাম সহ একটি ফাইল দিতে পারেন:

    echo .txt~>tmpfile
    xcopy *.txt foo /exclude:tmpfile
    del tmpfile
    
  4. ব্যবহার robocopy। যদিও robocopyশেল হিসাবে ওয়াইল্ডকার্ড সম্প্রসারণ জন্য একই শব্দার্থবিদ্যা হয়েছে আপনি এটা ফাইল / ওয়াইল্ডকার্ড উপেক্ষা করার একটি তালিকা দিতে পারেন:

    robocopy . foo *.txt /XF *.txt~
    
  5. ব্যবহার করুন for, dirএবং findstrএকটি উপযুক্ত একযোগে। এটি মূলত কেবলমাত্র সমস্ত লাইন ফিল্টার করে ~যা শেষে রয়েছে এবং বাকি অংশগুলিতে পরিচালনা করে। ifবৈকল্পিক উপরে আরো মার্জিত ছিল, আমি মনে করি।

    for /f "usebackq delims=" %i in (`dir /b *.txt ^| findstr /r "[^~]$"`) do @copy "%i" foo
    
  6. কেবল সম্পূর্ণতার জন্য: পাওয়ারশেল:

    Copy-Item *.txt foo
    

1

আমি কীভাবে কেবল * .txt এর সাথে মিলে যাওয়া থেকে দির / অনুলিপি বন্ধ করবেন তা নিশ্চিত নই তবে আমি কেন ব্যাখ্যা করতে পারি যে * .txt এটি কী করে তা ফেরত দেয়; এটি সংক্ষিপ্ত ফাইলের নামের সাথে মেলে যা সমস্ত ফাইলের জন্য .txt দিয়ে শেষ হয়, এটি দেখতে একটি dir / x * .txt করুন। এই প্রথম প্রতিটি তিনটি অক্ষরের (যেমন * .htm এইচটিএম, এইচটিএমএল এবং এমনকি htmlasdfasdf মিলবে) এর সাথে শুরু হওয়া প্রতিটি এক্সটেনশনের সেটগুলির ক্ষেত্রে এই সমস্যা দেখা দেয়।

এছাড়াও বেশিরভাগ প্রতিটি উইন্ডোজ অ্যাপ্লিকেশনই এইভাবে কাজ করবে কারণ ফাইন্ডফারস্টফাইল ফাইলগুলির সন্ধানের জন্য ওএস সরবরাহ করে এমন এপিআই , দীর্ঘ ফাইলের নাম এবং সংক্ষিপ্ত ফাইলের নামের সাথে মেলে। উদ্ধৃতি থেকে:

অনুসন্ধানে দীর্ঘ এবং সংক্ষিপ্ত ফাইলের নাম অন্তর্ভুক্ত রয়েছে।

জোহানেস রাসেলের উত্তর অনুসারে আপনাকে কিছুটা কাস্টম ফিল্টারিং করতে হবে।


1

আমার সমাধানটি ছিল আমার del *.xyz~আগে কার্যকর করা copy *.xyz। উজ্জ্বল নয়, তবে এটি কাজ করে।


+1 টি। ডি আহা! অন্যদের দেওয়া সমস্ত কুল কমান্ড জেনে সঠিক ক্রমে জিনিসগুলি ট্রম্প করে।
1:০৯

ঠিক আছে, প্রাথমিকভাবে আমি ধরে নেই যে লোকেরা ফাইলগুলি ফেলে দিতে রাজি হবে :-)
জোয়

দুঃখিত, এটি আপনার নিজের প্রশ্নের সঠিক উত্তর নয়। ব্রুট ফোর্স ফাইল মোছা কোনও সমাধান নয়।
ব্রেকথ্রু

0

যেহেতু জোয়ি সম্পূর্ণতার উল্লেখ করা হয়েছে, আমি মনে রাখবেন হিসাবে উল্লেখ করেছে, এখানে , যে এই কি ব্যাখ্যাকারী কম্যান্ড অনুযায়ী পরিবর্তিত হয় DIRএবং COPYএকটি ব্যবহার কমান্ড। DIRনিন কমান্ড কমান্ড এবং তার COPYকমান্ড , উদাহরণের জন্য, ডিফল্ট হিসাবে শুধুমাত্র দীর্ঘ নাম মেলে এবং তাই এই আচরণ প্রদর্শন করে না। ( সিএমডি ও কমান্ডের সাথে সামঞ্জস্যের জন্য সংক্ষিপ্ত পাশাপাশি দীর্ঘ নামের মিলও চালু করা যেতে পারে ))DIRCOPY


0

বিদ্যমান উত্তর কভার ফাইল অনুলিপি সবে পড়েছে, কিন্তু তাদের তালিকাভুক্ত নয়।

আপনি উভয় উদ্দেশ্যে সংরক্ষণাগার বিট ব্যবহার করতে পারেন । যদিও এটি XCOPY 1 এর সাথে ব্যবহারের পরিকল্পনা করা হয়েছে , এটি ডিআইআর 2 এর সাথেও কাজ করে ।

পদক্ষেপ:

  1. আর্কাইভ বিটটি সমস্ত .txtফাইলের জন্য সেট করা আছে তা নিশ্চিত করুন :

    ATTRIB +A *.txt
    
  2. সমস্ত .txt~ফাইল থেকে সংরক্ষণাগার বিট সরান :

    ATTRIB +A *.txt~
    
  3. সমস্ত .txtফাইলের তালিকা তৈরি করুন যার সংরক্ষণাগার বিট সেট রয়েছে:

    DIR /AA *.txt
    

    বা এগুলিতে অনুলিপি করুন somefolder:

    XCOPY /A *.txt somefolder/
    

1 এক্সসিপিওয়াই /Aসমস্ত ফাইল বাদ দেয় যাতে তার সংরক্ষণাগার বিটের সেট নেই bit এটি দৈনিক ব্যাকআপ থেকে নির্দিষ্ট ফাইলগুলি (যেমন, অস্থায়ী ফাইলগুলি) বাদ দিতে ব্যবহার করা যেতে পারে। সঙ্গে /Mসুইচ, এটি ফাইল, যা কুশলী যখন ছোট স্টোরেজ ডিভাইসের (যেমন, ডিস্কেট) ফাইল কপি থেকে সংরক্ষণাগার বিট সরিয়ে ফেলা হয়। এছাড়াও, কোনও ফাইল পরিবর্তন করে স্বয়ংক্রিয়ভাবে সংরক্ষণাগার বিট সেট করে, তাই /Mস্যুইচটি বর্ধিত ব্যাকআপের জন্য ব্যবহার করা যেতে পারে।

2 DIR /AA কেবলমাত্র সেই ফাইলগুলিকে দেখায় যাগুলির সংরক্ষণাগার বৈশিষ্ট্য সেট রয়েছে।


-1

আপনি চেষ্টা করতে পারেন: "* .txt" অনুলিপি করুন


এটা ঠিক উদ্ধৃতি চিহ্ন বিনা হিসাবে একই। সুতরাং এই কি করা উচিত?
জোয়

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