ব্যাচ ব্যবহার করে নির্দিষ্ট ধরণের ফাইলগুলির জন্য একটি টেক্সট ফাইল তৈরি করা


3

আমার কাছে একটি ফোল্ডার রয়েছে যাতে সমস্ত ধরণের ফাইল থাকে। আমার ফোল্ডারের পথটি বলা যাক E:/temp

আমি কেবল .aviটাইপ ফাইলগুলির জন্য, একটি টেক্সট ফাইল তৈরি করতে চাই এবং মুভিটির নাম হিসাবে টিএসটি ফাইলটি নামকরণ করব। সুতরাং যদি আমার .aviফোল্ডারে 20 টি ক্লিপ ফাইল থাকে তবে আমি 20 টিএসটি ফাইল খুলতে চাই এবং প্রতিটি টিএসটি ফাইলের নাম একটি ক্লিপ দেওয়া হবে।

এছাড়াও, txt ফাইলের ভিতরে আমার লিখতে হবে (সমস্ত txt ফাইলের জন্য এটি একই হবে) "HAPPY" শব্দটি

ব্যাচ ফাইল ব্যবহার করে স্ক্রিপ্টটি কী হবে?

উত্তর:


2

আপনি FORযে উপাদানগুলির সাথে কাজ করতে চান তার উপর পুনরাবৃত্তি করতে আপনাকে ব্যবহার করতে হবে। দেখুন কিভাবে ব্যাচ ফাইলে ওয়াইল্ডকার্ড মিলে ফাইল মাধ্যেমে লুপ করতে বিস্তারিত জানার জন্য।

এই অংশটি সমাধান হয়ে গেলে আপনি নিজের ফাইলের ফাইলের নামটি তৈরি করতে চাইবেন .txt। কমান্ড লাইন ডকুমেন্টেশন FORআমাদের এখানে সহায়তা করতে পারে:

In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only

শেষ এন্ট্রি আমরা চাই কি। আমরা এটিকে কেটে দিতে চাই .avi, তাই আমরা ~nকেবলমাত্র নামটি পেতে আমাদের পরিবর্তনশীলটি ব্যবহার করি । এখান থেকেই %%~nf.txtআসে।

আমরা %%fবর্তমান ফাইলের নাম দিয়ে শুরু করি । তারপরে আমরা এর সাথে এক্সটেনশনটি বন্ধ করে দিয়েছি %%~nfএবং পেরেছি .txt... সম্পন্ন:%%~nf.txt

সর্বশেষ সমস্যাটি হ'ল আপনি যখন এটিকে সমস্ত এক লাইনে সমাধান করার চেষ্টা করেন, যেমন:

FOR %%f IN (*.avi) DO ECHO HAPPY > %%~nf.txt

এটি কাজ করবে না, কারণ শেলটি >তাত্ক্ষণিকভাবে সেই ফাইলটিতে আউটপুট করা শুরু করবে , যা আমরা চাই না। আমরা ECHOপ্রতিটি একক ফাইলের জন্য প্রক্রিয়া করা চাই , তাই আমি কেবল এটি একাধিক লাইনে বিভক্ত করি।

@ECHO OFF

REM Iterate over all *.avi file in the current directory
FOR %%f IN (*.avi) DO (
    REM Cut off the extension from %%f, tack on .txt and 
    REM use it as the filename for our HAPPY output
    ECHO HAPPY > %%~nf.txt
)

হাই, আপনাকে অনেক ধন্যবাদ !! এটি কাজ করে এবং আমি খুশি। আরও একটি জিনিস ... আমি লুপ জিনিসটি কীভাবে কাজ করছে তা বোঝার চেষ্টা করছি। যে ক্লিপগুলিতে আমি আগ্রহী সেগুলি অনেকগুলি সাব ফোল্ডারে বিভক্ত। সুতরাং আমার আরও একটি ফোল্ডার রয়েছে, আরও অনেক ফোল্ডারের অভ্যন্তরে প্রতিটি ফোল্ডারে অন্য স্তরের ফোল্ডার থাকে এবং ক্লিপগুলি তৃতীয় স্তরের অভ্যন্তরে থাকে। এবং আমি all সমস্ত ফোল্ডারগুলির জন্য আমাকে যা শিখিয়েছি একইভাবে করতে চাই তবে আপনি যে ব্যাট ফাইলটি আমাকে দিয়েছিলেন তা অনুলিপি করার পরিবর্তে এটি বাইরের ফোল্ডার থেকে আমি সক্ষম করতে চাই প্রতিটি সাব ফোল্ডারটির জন্য চালিত করুন (মূলটি ) স্বয়ংক্রিয়ভাবে। আবার আপনাকে ধন্যবাদ!!!! শির
শির

সুতরাং আমি এটি লিখেছি: ফর / r %% f IN (* .avi) ডিও (%% ~ nf.txt ECHO ফিলিপস> %% ~ nf_Medical_System.txt) তবে txt ফাইলটি যেখানে ব্যাট ফাইলটি সেখানে অবস্থিত ... এবং আমি প্রতিটি টেক্সট ফাইলটি তার চলচ্চিত্রের অধীনে রাখতে চাই .. এটি যে সাবফোল্ডারে এটির অন্তর্গত তা আমি এটি কীভাবে সনাক্ত করতে পারি? আবার আপনাকে ধন্যবাদ!!!! শির
শির

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

@ শির %%~dpnf.txtপরিবর্তে ব্যবহার করার চেষ্টা করুন । এরপরে এটি ড্রাইভ লেটার + পুরো পাথ + নাম + ব্যবহার করা উচিত .txt। সম্ভবত যে সাহায্য করবে। অন্যথায় আমাকে নিশ্চিত করে নিশ্চিত করুন :)
ডের হচস্টাপলার

তুমিই শ্রেষ্ঠ! ধন্যবাদ! এটি পুরোপুরি কাজ করছে
শির

0

" HAPPY " ধারণকারী খুশি. txt নামের একটি পাঠ্য ফাইল তৈরি করুন । এইটি ধারণ করে Makehappy.cmd নামে একটি ব্যাচ ফাইল তৈরি করুন :

for %%i in (*.avi) do copy happy.txt "%%i.txt"

মেকাপ্পি চালান । নতুন পাঠ্য ফাইলগুলির দ্বিগুণ এক্সটেনশন থাকবে তবে প্রয়োজনে এর আশেপাশে বিভিন্ন উপায় রয়েছে।

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