ব্যাচ ফাইলটি পৃথক জিপ ফাইল হিসাবে জিপ করতে atch


10

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

দুর্ভাগ্যক্রমে আমি কোডটি হারিয়েছি যা এটি করেছিল এবং এখন আমি এটির সাথে আটকে যাচ্ছি যা কিছু করার মনে হয় না।

@echo on
cd "C:\Users\MVD21\Desktop\test"
FOR %%i IN (C:\Users\MVD21\Desktop\test) DO 7z.exe a "%~ni.7z" "%i"
pause

আমি প্রতিটি ফাইলের নিজস্ব জিপ সংরক্ষণাগার রাখতে চাই এবং জিপ সংরক্ষণাগারটির জন্য ফাইলটির নাম ভাগ করে নেব, অবশ্যই বর্ধন বিয়োগ করবে।

কোন সাহায্য ব্যাপকভাবে প্রশংসা করা হয়।


এছাড়াও যদি উইন্ডোজ 10 এ বিল্টিন জিপ বৈশিষ্ট্যটি ব্যবহার করে এটির সহজ উপায় থাকে তবে এটিও ঠিক আছে।
মাইক ভ্যান ডঙ্ক

উত্তর:


4

আমি প্রতিটি ফাইলের নিজস্ব জিপ সংরক্ষণাগার রাখতে চাই এবং জিপ সংরক্ষণাগারটির জন্য ফাইলটির নাম ভাগ করে নেব, অবশ্যই বর্ধন বিয়োগ করবে।

ব্যাচ স্ক্রিপ্ট

(উত্স এবং গন্তব্য পূর্ণ সুস্পষ্ট ফোল্ডার পাথ শীর্ষে সেট করুন এবং তারপরে কেবল প্রয়োজন অনুসারে চালান The উত্সটি হল যেখানে আপনি জিপ করতে চান এমন ফাইলগুলি উপস্থিত থাকে এবং গন্তব্যটি যেখানে আপনি এই জিপডগুলি চান তা চাই))

@ECHO ON

SET SourceDir=C:\folder\source
SET DestDir=C:\folder\destination

CD /D "C:\Program Files\7-Zip"
FOR /F "TOKENS=*" %%F IN ('DIR /B /A-D "%SourceDir%"') DO (
    7z.exe a "%DestDir%\%%~NF.zip" "%SourceDir%\%%~NXF"
)
EXIT

কমান্ড লাইন

FOR /F "TOKENS=*" %F IN ('DIR /B /A-D "C:\Folder\Source"') DO 7z.exe a "C:\Folder\Dest\%~NF.zip" "C:\Folder\Source\%~NXF"

আরও সংস্থান


4

আপনার আসল স্ক্রিপ্টটি নিম্নরূপে রেখাযুক্ত করে:

@echo on

কমান্ড প্রম্পটকে ব্যাচ ফাইলে প্রতিটি কমান্ড কার্যকর করার পূর্বে মুদ্রণ করতে বলে Tell এটি ঠিক তাই এটি করার আগে আপনি এটি "কি" দেখতে পাচ্ছেন।

cd "C:\Users\MVD21\Desktop\test"

সি হ্যাঙ্গস ডি ডিরেক্টররিটি যা আমি আশা করি সেই পথটি যেখানে আপনি সমস্ত ফাইল জিপ আপ করতে চান।

FOR %%i IN (C:\Users\MVD21\Desktop\test) DO 7z.exe a "%~ni.7z" "%i"

থেকে প্যারামিটার INএখানে (C:\Users\MVD21\Desktop\test)। পরামিতিটির সাথে মান নির্ধারিত হয়ে এটি লুপ "বডি" (কীওয়ার্ডের পিছনের ক্রিয়া DO) ঠিক একবার সম্পাদন %iকরবে C:\Users\MVD21\Desktop\test। এটি আপনার যা ইচ্ছা তা করে না তা অবাক হওয়ার কিছু নেই! দেখে মনে হচ্ছে এটি সম্পূর্ণ ডিরেক্টরিটি একটি একক .7z ফাইলটিতে জিপ করবে।

যদি এটি কিছু না করে তবে সম্ভবত এটি এর পথ খুঁজে পাচ্ছে না 7z.exe। যদি সেই ফাইলটি বর্তমান ডিরেক্টরিতে না থাকে ( testউপরে উল্লিখিত ডিরেক্টরিটি), তবে এটিতে হবে PATH( %PATH%পরিবেশে পরিবর্তনশীল; echo %PATH%এটি বর্তমানে কী সেট করা আছে তা দেখার জন্য একটি শেল দিয়ে চেষ্টা করুন )। অন্যথায় আপনাকে 7z.exeবর্তমান ডিরেক্টরিতে অনুলিপি করতে হবে বা এটি যেখানে রয়েছে তার কোনও নিখুঁত পথ নির্দিষ্ট করতে হবে (যেমন, উদাহরণস্বরূপ "C:\Program Files\7-zip\7z.exe" ...)।

pause

স্ক্রিপ্টটি শেষ হয়ে গেলে, এই কীওয়ার্ডটি শেলটিকে কেবলমাত্র তাত্ক্ষণিকভাবে প্রস্থান করার পরিবর্তে কমান্ড প্রম্পটটি প্রবেশ করার বা বন্ধ করার জন্য অপেক্ষা করার জন্য শেলকে বলে।


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

আপনার ক্ষেত্রে, আপনার সমস্যার নিম্নলিখিত উপ-উপাদান রয়েছে:

  1. একটি প্রদত্ত ডিরেক্টরিতে অন্তর্ভুক্ত প্রতিটি ফাইলকে আইট্রেট ওভার (লুপ মাধ্যমে)।
  2. প্রতিটি প্রদত্ত ফাইলের জন্য, 7zইউটিলিটিটি চাওয়ার মাধ্যমে এটি .7z ফাইলে রাখুন ।

ইতিমধ্যে সেখানে কারও উত্তর থাকার সম্ভাবনা রয়েছে যা আপনার নির্দিষ্ট প্রয়োজনীয়তার সমাধান করে পৃথক পৃথকভাবে আরও সাধারণ টুকরো খুঁজে পেতে সক্ষম হওয়ার চেয়ে কম।

এই প্রশ্নটি, 'ব্যাচের স্ক্রিপ্টে ডিরেক্টরিতে প্রতিটি ফাইলকে কীভাবে করবেন' আপনার সমস্যার অর্ধেক সমাধান করে।

উত্তরের জোড় হ'ল আপনি কেবল এই অংশটি স্ট্যাকওভারফ্লো উত্তর থেকে শুরু করুন:

for /f "usebackq delims=|" %%f in ('dir /b "c:\program files"') do echo %%f

এবং অংশ যেখানে এটি তা পরিবর্তনের কিছু কাজ ( echo %%f) কি করতে আপনি কি করতে চান । আমি জানি যে আপনার সেই অংশটি পরিবর্তন করা দরকার, কারণ আমি স্ক্রিপ্টটির পাঠ্য বিশ্লেষণ করেছি এবং প্রতিটি অক্ষর এবং প্যারামিটারের অর্থ কী তা বুঝতে পেরেছি, তাই আমি আমার নিজের কোডটি কোথায় সন্নিবেশ করতে চাই তা নিয়ে যুক্তি করতে পারি।

এখানে কিছু "এয়ার কোড" (অরক্ষিত!) রয়েছে:

for /f "usebackq delims=|" %%f in ('dir /b "C:\Users\MVD21\Desktop\test"') do 7z.exe a "%~ni.7z" "%i"

@echo onএবং pauseবিবৃতি সর্বোপরি, ভাল অভ্যাস তাই তাদের যে চলে যাবে। এবং আপনি সম্ভবত যে রাখা চাইবেন cdবিবৃতি খুব, আপনার ফাইল সেই পথ মধ্যে অবস্থিত হয় পারেন।

সুতরাং যে আমাদের ছেড়ে কি?

@echo on
cd "C:\Users\MVD21\Desktop\test"
for /f "usebackq delims=|" %%f in ('dir /b "C:\Users\MVD21\Desktop\test"') do 7z.exe a "%~nf.7z" "%f"
pause

আপনি যদি "এটি কাজ করে না!" দিয়ে উত্তর দেয় তবে আমি আপনাকে সাহায্য করব না। যদি আপনি এটি চেষ্টা করে থাকেন এবং এটি কার্যকর না হয়, আপনি অবশ্যই আমাকে নিম্নলিখিত তথ্য মন্তব্যে জানাতে হবে :

  • আপনি যখন এই কমান্ডগুলি চালাবেন বা কোনও ব্যাচের ফাইলে রাখবেন এবং সেগুলি চালাবেন তখন আপনি কমান্ড প্রম্পটে কোন সঠিক ত্রুটি বার্তা পাবেন? সংক্ষিপ্তকরণ করবেন না; আউটপুটটি সরাসরি অনুলিপি করুন এবং পেস্ট করুন (এটি অনেকটা হলেও http://pastebin.com এ রাখুন )।
  • আপনার কী মনে হচ্ছে ত্রুটি বার্তাটি আপনাকে বলছে যে সমস্যাটি হচ্ছে?
  • আপনার 7-জিপ ইনস্টলেশনটি কোথায় অবস্থিত (ফাইলের পাথ)?
  • আপনার 7-জিপ ইনস্টলেশনের ফাইলের অবস্থানটি PATHপরিবেশের বিষয়বস্তুর অন্তর্ভুক্ত ? ( echo %PATH%একটি cmdঅনুরোধ সহ উপরে বর্ণিত হিসাবে এটি পরীক্ষা করুন ।)

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

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

আমি সত্যিই বুঝতে চাই তবে গুগল অনুসন্ধান করা তেমন সাহায্য করে না। উদাহরণস্বরূপ, "" dir / b "কমান্ড বা পরামিতিটি কী বা এটি কী করছে তা আমার কোনও ধারণা নেই। আমি জানি ডিয়ার অবশ্যই একটি ডিরেক্টরি তবে আমি জানি না কী / বি। আমি যা চাই তা হল প্যারামিটারগুলি কী করছে তা বোঝানোর জন্য আমি আরও ভাল করে বুঝতে পারি। অথবা কারও সাথে যদি এমন কোনও সাইটের লিঙ্ক থাকে যেখানে তারা এই ধরণের জিনিস নিয়ে যায় তবে এটি সহায়কও হবে। আমি একটি ব্যাচের ফাইলে 'dir / b googled এবং সত্যিই কিছুই খুঁজে পেলাম না। আমি মনে করি / বি ফাইলের নামের সাথে কিছু করেছে তবে আমি অনিশ্চিত।
মাইক ভ্যান ডঙ্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.