এটি টোটাল কমান্ডারের অভ্যন্তরীণ জিপ প্যাকার:
তবে আমি আমার 7 জিপ প্যাকারটি ব্যবহার করতে চাই। আমি যখন 5 টি ফাইল নির্বাচন করি তখন আমি প্রতিটি নির্বাচিত ফাইলের জন্য 5 টি পৃথক .zip সংরক্ষণাগার পাই। আমি 7zip এ কীভাবে করব?
এটি টোটাল কমান্ডারের অভ্যন্তরীণ জিপ প্যাকার:
তবে আমি আমার 7 জিপ প্যাকারটি ব্যবহার করতে চাই। আমি যখন 5 টি ফাইল নির্বাচন করি তখন আমি প্রতিটি নির্বাচিত ফাইলের জন্য 5 টি পৃথক .zip সংরক্ষণাগার পাই। আমি 7zip এ কীভাবে করব?
উত্তর:
আমি নিশ্চিত না যে আপনি গ্রাফিকাল ইউজার ইন্টারফেসটি ব্যবহার করার পরামর্শ দিচ্ছেন তা করতে পারেন তবে আপনি অবশ্যই কমান্ড লাইন থেকে:
FOR %i IN (*.*) DO 7z.exe a "%~ni.7z" "%i"
আপনাকে প্রথমে ডিরেক্টরিতে ( cd
কমান্ড) ডিরেক্টরীতে পরিবর্তন F:\Downloads
করতে হবে, বা যে ডিরেক্টরিটি আপনি ভর সংক্ষেপণ সম্পাদন করতে চান তা প্রয়োজন। এছাড়াও, * .exe বা কেবলমাত্র সেই দস্তাবেজগুলি সংকুচিত করতে আপনি যা ফিল্টার করতে চান তা বাড়িয়ে তোলা যথেষ্ট সহজ।
এবং গোপন ডিকোডার রিং:
%i
একটি পরিবর্তনশীল যা লুপের প্রতিটি পদক্ষেপের জন্য ফাইলের নাম ধারণ করে(*.*)
নির্বাচন মানদণ্ড, এটি সহজেই *। এক্স বা অনুরূপ হতে পারে7z.exe
7-জিপের কমান্ড লাইন সংস্করণ%~ni
- এটি% i ভেরিয়েবলটি কেবলমাত্র ফাইলের নামে প্রসারিত করে - কোনও এক্সটেনশন নেইযদি আপনি কোনও প্রদত্ত ডিরেক্টরিতে কেবল ফোল্ডার যুক্ত করতে চান, কেবলমাত্র ফাইলের সাথে কাজ করে কমান্ডটি ডিফল্ট হিসাবে কিছুটা জটিল। আমাদের এটিকে কিছু অতিরিক্ত তথ্য খাওয়াতে হবে:
FOR /F "usebackq delims=?" %i IN (`DIR /B /A:D`) DO 7z.exe a "%i.7z" "%i"
যাদু বলে মনে হচ্ছে এমন কয়েকটি অংশের কারণে এটি কাজ করে:
/F
() এর প্রসারিত মানের উপর পুনরাবৃত্তি করতে বলেusebackq
এর জন্য বলে যে আমি একটি কমান্ড পাস করতে যাচ্ছি এবং পুনরুক্তির জন্য আউটপুটটি ব্যবহার করবdelims=?
?
ফাইলের নাম এবং ডিরেক্টরিগুলির মধ্যে একটি অবৈধ চরিত্র - এর জন্য আমি টোকেনগুলি আলাদা করতে চাই তার জন্য বলে । আমি কেবল একটি টোকেন চাই/B
মধ্যে DIR
হয় খালি বিন্যাস - শুধু নাম/A:D
মধ্যে DIR
অ্যাট্রিবিউট দ্বারা ফলাফল সীমাবদ্ধ জন্য, ডি ডিরেক্টরি জন্যআপনি যদি এইটিকে কোনও ব্যাচের ফাইলের অভ্যন্তরে সজ্জিত করতে চান তবে আপনার কেবলমাত্র পরিবর্তনটি করতে হবে% i ভেরিয়েবলের দ্বিগুণ পালাতে:
FOR %%i IN (*.*) DO 7z.exe a "%%~ni.7z" "%%i"
আমি গইউইক্সের উত্তরটি পছন্দ করি। তবে, যদি আপনি উইন্ডোজ 7 ব্যবহার করেন (বা পাওয়ার শেল ইনস্টলড আছে) এবং 7-জিপ, 7za.exe এর কমান্ড-লাইন সংস্করণও ব্যবহার করেন তবে আপনি এই আদেশটি চালাতে পারেন:
dir | ForEach-Object { & "7za.exe" a $_.BaseName $_.Name }
আপনি কেবল এক্সিকিউটেবল ফাইল নির্বাচন করতে "dir" কে "dir * .exe" এ পরিবর্তন করতে পারেন।
পাওয়ার শেল সম্পর্কে একটি দুর্দান্ত বিষয় হ'ল আপনি স্ট্রিংয়ের পরিবর্তে অবজেক্টের সাথে কাজ করছেন। আপনি চাইলে আপনি সত্যই সুনির্দিষ্ট হয়ে উঠতে পারেন। উদাহরণ স্বরূপ:
dir *.csv | ? { $_.Length -lt 18900 -and $_.LastWriteTime -ge [DateTime] "07/01/2011" } | ForEach-Object { & "7za.exe" a $_.BaseName $_.Name }
এর মধ্যে কেবল এমন ফাইল অন্তর্ভুক্ত থাকবে যা:
সম্পাদনা করুন আপনি যদি 7-জিপ ফাইলের পরিবর্তে জিপ ফাইলগুলি চান তবে পরিবর্তে ইনফিজিপের জিপ.এক্সই ব্যবহার করুন।
7z a -tzip archive.zip *.exe
আপনি http://www.ghisler.com/plugins.htm থেকে টোটাল কমান্ডারের জন্য 7zip প্লাগইনটি ডাউনলোড এবং ইনস্টল করতে পারেন আপনার স্ক্রিনশট থেকে উইন্ডোর ডানদিকে একবার করার পরে 7zip সংক্ষেপণের জন্য আরও একটি নির্বাচন হবে be সেই বিকল্পের সাহায্যে আপনি যা যা বলছেন ঠিক তা সম্পাদন করতে পারবেন।
আমি ঠিক এই সমস্যার জন্যই কাজ করছি এবং আমি যে সমস্যার সন্ধান পেয়েছি তা হ'ল আর্কাইভের মধ্যে ফোল্ডারের নাম নকল করা, অর্থাত্ "foo" নামে একটি ফোল্ডার সংকুচিত .\foo\fighters.txt
করার সময় কেবল একটি ধারণের পরিবর্তে একটি সংরক্ষণাগার তৈরি করা হয় fighters.txt
।
উত্তরটি হ'ল ডিরেক্টরিটি প্রক্রিয়াভুক্ত হচ্ছে এবং সংরক্ষণাগারটি পূর্ববর্তী (মূল) ডিরেক্টরিতে উপস্থিত হতে হবে, তারপরে পরবর্তী ফোল্ডারটি প্রক্রিয়া করার জন্য সেই ডিরেক্টরিতে ফিরে যেতে হবে।
সংরক্ষণাগারের মধ্যে শেষ না হওয়াতে 7 ডাব্লুআইপি-র বিদ্যমান জিপ এবং সিএমডি ফাইলগুলিকে অগ্রাহ্য করা উচিত নয়, সুতরাং -x!*.zip
এবং -x!*.cmd
বর্জনীয় যুক্তি।
এই স্ক্রিপ্টটি পুনরাবৃত্ত ফোল্ডার কাঠামোও বজায় রাখবে।
@echo off
REM Ensures variables set within the batch file are local to
REM this script only and will be removed when finished.
setlocal
if exist *.zip goto zip_exist
for /d %%X in (*) do (
cls
cd /D %%X
"e:\Program Files\7-Zip\7z.exe" a -r -x!*.zip -x!*.cmd "..\%%X.zip" "*.*"
cd ..
)
goto end
:zip_exist
Echo.
Echo Note: for this script to work, compression of
Echo pre-existing zip files is not possible.
:end
pause
উপরের কোডটি একটি "ব্যাগ" ফাইল যেমন "compress_dirs.cmd" তে অনুলিপি করা উচিত এবং আপনার সংকোচন করতে চান এমন ফোল্ডারগুলি অন্তর্ভুক্ত ডিরেক্টরি থেকে অ্যাডমিন হিসাবে চালানো উচিত।
আশাকরি এটা সাহায্য করবে.
যদি আপনার ফোল্ডার কাঠামো রাখতে হয় এবং প্রতিটি ফাইলকে তার নিজস্ব কাঠামোয় সংরক্ষণ করতে হয় তবে এটি ব্যবহার করে দেখুন:
এক্সটেনশন .bat সহ একটি ফাইলে এই কমান্ডটি সংরক্ষণ করুন এবং আপনার জিপ করতে হবে এমন ফোল্ডারে এটি রাখুন:
FOR /R %%i IN (*.*) DO "C:\Program Files\7-Zip\7z.exe" a "%%i.7z" "%%i" -sdel
বিঃদ্রঃ:
-সডেল: মূল ফাইলটি মুছে ফেলে (alচ্ছিক, যদি আপনি কেবল সংক্ষেপিত ফাইল রাখতে চান)