সংরক্ষণাগারটি যেখানে রয়েছে সেই ফোল্ডারে ফলাফলগুলি আউটপুট করে আমি কোনও ফোল্ডারে উপ-ডিরেক্টরিতে থাকা একাধিক সংরক্ষণাগার কীভাবে নিষ্কাশন করব।
সংরক্ষণাগারটি যেখানে রয়েছে সেই ফোল্ডারে ফলাফলগুলি আউটপুট করে আমি কোনও ফোল্ডারে উপ-ডিরেক্টরিতে থাকা একাধিক সংরক্ষণাগার কীভাবে নিষ্কাশন করব।
উত্তর:
প্রথমত, 7-জিপ ইনস্টল করুন ।
bat
ডিরেক্টরিটির মূলের ভিতরে একটি সংরক্ষণাগার সহ অনেকগুলি সাব-ডাইরেক্টরি সম্বলিত একটি ফাইল তৈরি করুন । তারপরে নিম্নলিখিতটি পেস্ট করুন:
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files\7-zip\7z.exe" x "%%X"
)
popd
)
ব্যাট চালু করুন এবং সমস্ত রাইর / জিপগুলি সেটিতে থাকা ফোল্ডারে সরিয়ে নেওয়া হবে।
কিভাবে কাজ করে?
("*") ডিও-তে (ডি * র) জন্য% ডি / র
বর্তমান ডিরেক্টরিতে সমস্ত ফোল্ডার লুপ করতে, এবং একটি চলক মধ্যে পাথ স্থাপন
%%F
।
% সিডি% চাপানো
বর্তমান ডিরেক্টরিটি আমরা মেমরিতে রাখি।
সিডি %% চ
ভেরিয়েবল থেকে
%%F
বর্তমান ডিরেক্টরি হিসাবে ফোল্ডারটি সেট করুন ।
FOR %%X in (*.rar *.zip) DO (
বর্তমান ফোল্ডারে থাকা সমস্ত ফাইল
rar
এবংzip
ফাইলগুলির জন্য, করুন:
"C:\Program Files\7-zip\7z.exe" x "%%X"
ফাইলগুলিতে 7-জিপ চালান। চারপাশে উদ্ধৃতি প্রয়োজন
%%X
কারণ কিছু ফাইলের নামের মধ্যে ফাঁক রয়েছে।
popd
পূর্ববর্তী ডিরেক্টরিটিতে ফিরে আসুন যা আমরা স্মৃতিতে পূর্বে সঞ্চয় করেছিলাম।
আশা করি এটি কারও কাজে লাগবে।
উইন্ডোজ ভিস্তা থেকে স্ক্রিপ্টটি চালাতে আমার সমস্যা হয়েছিল। আমি কোড চালানো যখন কিছুই খুশি। স্ক্রিপ্টটি চালাতে সক্ষম হওয়ার জন্য আমার প্রশাসক হওয়া দরকার। যখন আমি ডাবল .bat ফাইলটিতে ক্লিক করেছি এবং "প্রশাসক হিসাবে চালাই" তখন এটি কাজ করে না কারণ এটি কোনও কারণে সিস্টেম 32 ফোল্ডারে শুরু হয়েছিল (যদি আমি সঠিকভাবে মনে করি)। এটির সমাধান করার জন্য উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবলটি (এখানে ব্যাখ্যা করা হয়েছে: উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবলস )% ~ dp0 ব্যবহার করে স্ক্রিপ্টটি যে ডিরেক্টরি থেকে চালিত হয়েছিল সেই ডিরেক্টরিতে ফিরে যেতে পারেন।
@echo on
cd %~dp0
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files\7-zip\7z.exe" x %%X
)
popd
)
নিশ্চিত করুন যে কোনও * .রার বা *। জিপ ফাইলগুলি স্ক্রিপ্টের মতো একই স্তরে নেই। এগুলি এক স্তর নীচে হওয়া উচিত।
আমি আশা করি এই মন্তব্যটি কাউকে সাহায্য করেছে।
find . -name "*.zip" | while read filename; do unzip -o -d "`dirname "$filename"`" "$filename"; done;
বর্তমান ডিরেক্টরিটিতে পুনরাবৃত্ত অনুসন্ধান শুরু করে, .zip এ শেষ হওয়া সমস্ত ফাইল সন্ধান করে, তারপরে লুপগুলিতে পাইপগুলি। এটি খুঁজে পাওয়া প্রতিটি ফাইলের জন্য, এটি ফাইলের ডিরেক্টরিতে আউটপুট বাদ দিয়ে ফাইলটিতে একটি আনজিপ কমান্ড চালায়।
উপরের উত্তরগুলি কাজ করে তবে আপনি যদি চালাচ্ছেন Windows 64-bit
এবং 7-Zip 32-bit
সঠিক পথটি C:\Program Files (x86)\7-Zip
7-জিপের জন্য। স্ক্রিপ্টটি নীচে আমার পক্ষে কাজ করেছিল।
@echo on
cd %~dp0
FOR /D /r %%F in ("*") DO ( pushd %CD% cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files (x86)\7-zip\7z.exe" x %%X
)
popd
)