7-জিপ কমান্ড লাইনটি ব্যবহার করে আমি কীভাবে সাব-ডিরেক্টরিতে সংরক্ষণাগার করব? বা, সংরক্ষণাগারটির সময় আমি কীভাবে ফোল্ডারটির কাঠামোটি রাখি?


16

আমার কাছে এই ধরণের ফাইল রয়েছে:

C:\G\G1\35antique-shop.mp3
C:\G\G2\35antique-shop.mp3
C:\G\G1\09saguri.mp3
C:\G\G2\09saguri.mp3

সংরক্ষণাগারের সময় ফোল্ডারের কাঠামো কীভাবে রাখা যায় তা আমি কেবল জানতে চাই । এটি সদৃশ জিনিসটির চেয়ে গুরুত্বপূর্ণ, এটি কীভাবে সমাধান করা যায় তা জানতে বোনাস হবে bon

@ ল্যাম্ব "আপনি কি কেবল জি 1 এবং জি 2 ফোল্ডার থেকে কেবল নির্বাচনী ফাইল (পুরো ফোল্ডার সামগ্রী নয়) সংরক্ষণাগারবদ্ধ করতে চান?"

এটি প্রায় সবই বলে, তবে আমি উন্নতি করার চেষ্টা করব: কেবলমাত্র আমি নির্বাচিত কিছু ফাইলকে একটি সংরক্ষণাগারে স্থানান্তর করতে চাই না । আমার কাছে প্রতিটি ফাইলের পাথ-নাম সহ এই ফাইলগুলির একটি তালিকা রয়েছে।

সুতরাং, সাবডিআর 1 এ 10 টি ফাইল থাকতে পারে যার মধ্যে আমি তিনটি জিপ করতে চাই এবং সাবডির 1 \ সাব 2 এ পাঁচটি ফাইল থাকতে পারে যার মধ্যে আমি পাঁচটিই জিপ করতে চাই। আমার যে ফাইলগুলি সংরক্ষণাগারভুক্ত করা দরকার সেগুলি একটি তালিকা ফাইলের মধ্যে রয়েছে।

সদৃশ ফাইল থাকতে পারে, সুতরাং আমার আশা এই যে সাবডাইরেক্টরি যুক্ত করা হয়েছে, 7-জিপ এগুলিকে সদৃশ হিসাবে দেখবে না।

এবং আমি কমান্ড লাইনে এটি করতে পছন্দ করি।

আমি এই জাতীয় ব্যাচ ফাইল চেষ্টা করেছি:

7z a -r MyArchive.7z C:\G\G1\35antique-shop.mp3
7z a -r MyArchive.7z C:\G\G2\35antique-shop.mp3
7z a -r MyArchive.7z C:\G\G1\09saguri.mp3
7z a -r MyArchive.7z C:\G\G2\09saguri.mp3

এর অর্থ হ'ল 01antique-shop.mp3, 02antique-shop.mp3, ...., 33antique-shop.mp3 এবং 34antique-store.mp3 পর্যন্ত ফাইল সংরক্ষণাগারভুক্ত করা উচিত নয়।

ফোল্ডারনামগুলি (= উপ-ডিরেক্টরিগুলি) MyArchive.7z এ যোগ করা হয়নি এবং এটিই সমস্যা।

স্পষ্টতই, আমি একটি তালিকা ফাইলের সাথে কেবল একটি কমান্ডো ব্যবহার করতে চাই, তবে এটিও কার্যকর হয় না।

আমি চেষ্টা করেছিলাম:

7z a -mx0 -tzip C:\$$-edrive\F-G-H.zip @fgh.txt

যা আসলে যতদূর বাছাই করা যায় ততই সুন্দর কাজ করে তবে এটি ডিরেক্টরি কাঠামোটি রাখে না। দুঃখজনকভাবে।

আমি এটা কিভাবে করবো?


আপনি কি কেবল জি 1 এবং জি 2 ফোল্ডার থেকে কেবল নির্বাচিত ফাইলগুলি (পুরো ফোল্ডারের সামগ্রী নয়) সংরক্ষণাগার রাখতে চান?
অঙ্কিত

উত্তর:


12

7-জিপ (15.14) এর সর্বশেষতম স্থিতিশীল সংস্করণটিতে স্যুইচ-এসপিএফ রয়েছে যা পরম পাথ স্টোরেজ সক্ষম করে।

উদাহরণস্বরূপ, যদি ফাইল list.txt হয়

C:\tmp\dir1\file.txt
C:\tmp\dir2\file.txt

কমান্ডটি 7z a p.7z -spf @list.txtতালিকার মতো পরম পাথগুলি সংরক্ষণ করে সংরক্ষণাগার তৈরি করবে। বিকল্পভাবে, কমান্ডটি 7z a p.7z -spf2 @list.txtড্রাইভ লেটারটি সরিয়ে ফেলবে:

tmp\dir1\file.txt
tmp\dir2\file.txt

ফাইল যদি list.txt হয়

dir1\file.txt
dir2\file.txt

কমান্ডটি 7z a p.7z @list.txtতালিকার মতো সম্পর্কিত পাথগুলি সংরক্ষণ করবে, উভয় সংস্করণে 9.20 এবং 15.14।

আমি সুইচ-এসপিএফ দিয়ে আরও পরীক্ষা করেছি did ফলাফল এখানে


আমি এই ধারণাটি এক দিনের জন্য অনুসন্ধান করেছিলাম। ধন্যবাদ!
মোশে এল

9

নিম্নলিখিতটি ব্যবহার করে এটি উপ-ডিরেক্টরি সহ একটি ডিরেক্টরি সংরক্ষণাগার হিসাবে পেয়েছি :

7z.exe a - t7z NewArchivePath PathOfFolderToArchive

আমি 7zA.exe এর সরাসরি লিঙ্কটি কোথাও খুঁজে পাচ্ছি না (আপনার লিঙ্ক অনুসারে) এটি কি অপ্রচলিত এবং 7z.exe দ্বারা প্রতিস্থাপিত হয়েছে?
প্রিন্সেসপুলারুলজ

@ ব্যবহারকারী194767: 7za.exe হ'ল কমান্ড-লাইন সংস্করণ
করণ

এবং, আমি এটি ব্যবহার করতে চাই, তবে আমি সেই পৃষ্ঠায় এটির মতো একটিও খুঁজে পাচ্ছি না, 7-zip.org/download.html। সুতরাং, কেবল স্পষ্ট করে বলার জন্য : " কোথাও 7zA.exe এর সরাসরি লিঙ্কটি খুঁজে পাচ্ছি না" সহকারে আমি সত্যিই বোঝাতে চাইছিলাম : "দয়া করে আমাকে এই ফ্রি সফটওয়্যারটির একটি সরাসরি লিঙ্ক দিন!" ধন্যবাদ!
প্রিন্সেসপুলারুলজ

1
@ ব্যবহারকারী ১৯47476767: ঠিক আছে, এখানে বর্তমান সংস্করণটি রয়েছে, তবে আপনি কি আমাকে বলছেন যে আপনি সেই পৃষ্ঠায় কোথাও --জিপ কমান্ড লাইন সংস্করণটি দেখতে পাচ্ছেন না ?!
করণ

আমি 7zA.exe তাই 7z.exe ব্যবহার করার চেষ্টা করতে পারি না এবং এটি কাজ করে। আমি নিশ্চিত নই যে -r পতাকাটি কী জন্য ব্যবহার করা হয়েছে তবে সাব-ডিরেক্টরিগুলি সংরক্ষণাগারভুক্ত করার জন্য এটির প্রয়োজন নেই not
এরিক রোপার 21

7

পরিবর্তে এটি চেষ্টা করুন:

cd /d C:\
7z a MyArchive.7z G\G1\35antique-shop.mp3
7z a MyArchive.7z G\G2\35antique-shop.mp3
7z a MyArchive.7z G\G1\09saguri.mp3
7z a MyArchive.7z G\G2\09saguri.mp3

সমস্যাটি মনে হচ্ছে যে লোকেরা বছরের পর বছর ধরে সঠিক পথের সঞ্চয়স্থানের বিকল্পগুলির জন্য অনুরোধ করে আসছিল (ঠিক তেমন তাদের কাছে মাল্টি-ভলিউম সংরক্ষণাগারগুলি সংশোধন করার ক্ষমতা রয়েছে ) তবে লেখক আগ্রহী বলে মনে হয় না। আমি WinRAR এত বেশি ব্যবহার করা শুরু করার কারণের এটিই That's


যদি আপনার একটি তালিকা ফাইল থাকে, সংরক্ষণাগারভুক্ত ফাইলগুলি যদি একটি একক শীর্ষ-স্তরের ডিরেক্টরি ভাগ না করে তবে 7-জিপ পাথ সংরক্ষণ করবে না । উদাহরণস্বরূপ আপনার যদি নিম্নলিখিত ইনপুট.টেক্সট থাকে :

C:\path to\file1.ext
D:\path to\file1.ext
E:\path to\file1.ext

আপনি যদি দৌড়ান 7z a MyArchive.7z @Input.txt, আপনি দেখতে পাবেন যে পথগুলি পুরোপুরি ছিটানো হয়েছে, যা আমার কাছে পুরোপুরি পিছনে বলে মনে হচ্ছে (OTOH rar a MyArchive.rar @Input.txtকাজটি ঠিকঠাক করে)।

সুতরাং 7-জিপের ঘাটতি কাটিয়ে ওঠার জন্য, আপনি নিম্নে ব্যাচ ফাইলটি ব্যবহার করতে পারেন:

for /f "tokens=1* delims=\" %%i in (Input.txt) do (
    pushd %%i\
    7z a D:\MyArchive.7z "%%j"
    popd
)

দ্রষ্টব্য:D:\MyArchive.7z আপনার গন্তব্য সংরক্ষণাগারটি সঠিক পথে প্রতিস্থাপন করুন । এছাড়াও, ব্যাচ ফাইলটি আপনার তালিকাতে ফাইলগুলি উদ্ধৃত করেছে কিনা তা নির্বিশেষে কাজ করা উচিত।


সম্পাদনা: যদি আপনার তালিকা ফাইলটি এমন মনে হয়:

"C:\$$-edrive\F\faithless.-.long.way.mp3"
"C:\$$-edrive\G\Antique Shop.mp3"

অথবা

"\$$-edrive\F\faithless.-.long.way.mp3"
"\$$-edrive\G\Antique Shop.mp3"

তারপরে এটির মতো দেখতে এটি সম্পাদনা করুন:

"$$-edrive\F\faithless.-.long.way.mp3"
"$$-edrive\G\Antique Shop.mp3"

এখন ধরে নিই যে সমস্ত ফাইল সংরক্ষণাগারভুক্ত করা হচ্ছে C:\$$-edrive, সি: to এ নেভিগেট করুন এবং রান করুন 7z a C:\MyArchive.7z @C:\Input.txt। পাথ listfile একটি ব্যবহার সংরক্ষণ করা হবে শুধুমাত্র যদি কোনো ড্রাইভ অক্ষর উপস্থিত হয়, কোনও প্রাথমিক ব্যাকস্ল্যাশ আছে এবং যদি টপ লেভেল (রুট) ডিরেক্টরির সবকটি ফাইলের একই। এছাড়াও, সেরা ফলাফলের জন্য আমি আপনাকে সি: \ $$ - এড্রাইভে MyArchive.7z তৈরি না করার পরামর্শ দিচ্ছি।


ঠিক আছে, উত্তর ছিল 3/4 ঠিক আছে। আরএআর দুর্দান্ত কাজ করেছে, তবে ব্যাচ ফাইল soso কাজ করেছে। আউটপুটটি এখানে রয়েছে এবং এটি কেবল আমার সংরক্ষণাগারে একটি ফাইল যুক্ত করেছে, ফাইল নামের মধ্যে ফাঁকা জায়গা নেই ___ সি: rams প্রোগ্রামগুলি i জিপার্স \ 7-জিপ> (ধাক্কা দেওয়া "সি: \ সি: \ প্রোগ্রামগুলি \ জিপার্স \ 7-জিপ \ 7z .exe ac: \ $$ - এড্রাইভ \ FGH.7z "$$ - এড্রাইভ করুন \ G \ gattaca_7mp 3_zefen \ gattaca - 03 এক মুহুর্ত। এমপি 3" "পপড) 7-জিপ 4.65 কপিরাইট (সি) 1999-2009 ইগর পাভলভ ২০০৯ সংরক্ষণাগার আপডেট করে স্ক্যান করা সি: \ $$ - এড্রাইভ \ FGH.7z ত্রুটি: ফাইল খুলতে পারে না FGH.7z.tmp অ্যাক্সেস অস্বীকার করা হয়। সিস্টেম ত্রুটি: অপরিজ্ঞাত ত্রুটি ===== সবচেয়ে গুরুত্বপূর্ণ সম্ভবত অ্যাক্সেস অস্বীকার ত্রুটি?
প্রিন্সেসপুলারুল্জ

উপরের আপনার প্রশ্নের সাথে আপনি কি আসল তালিকা ফাইল থেকে কয়েকটি স্যাম্পল লাইন (ফাঁকা জায়গায় এবং ছাড়াই) যুক্ত করতে পারেন?
করণ

ঠিক আছে, তাই আমি ফাইলের নামগুলিতে সমস্ত স্পেস প্রতিস্থাপন করেছি, তবে পথের নামগুলিতে নয়, যা আমি এখন চেষ্টা করব। আউটপুটটি এখনও রয়েছে: সি: \ প্রোগ্রামগুলি \ জিপার্স \ 7-জিপ> (______ পুশড সি: _______ সি: rams প্রোগ্রামগুলি \ জিপার্স \ 7-জিপ \ 7z.exe এসি: \ $$ - এড্রাইভ করুন \ এফজিএইচ 7z "$$ - এড্রাইভ \ এফ \ ফিল্ম মিউজিক_14 এমপি 3_ফরেস্টিয়ান \ স্টারক্রাফ্ট। অস্বীকৃত. সিস্টেম ত্রুটি: অপরিজ্ঞাত ত্রুটি
প্রিন্সেসপুলারুলজ

"আমি ফাইলের নামগুলিতে বিন্দু দিয়ে সমস্ত স্পেস প্রতিস্থাপন করেছি" - এর অর্থ আপনি প্রকৃত ফাইলগুলির নাম পরিবর্তন করেছেন, বা কেবল তালিকা ফাইলটি সম্পাদনা করেছেন? ফাইলের নাম এবং পাথ উভয়ের জায়গাগুলি ভাল হওয়া উচিত, উপরের আমার সম্পাদনা দেখুন (উদাহরণস্বরূপ আপনার তালিকা থেকে ফাইলটি সি:। সরান এবং সমস্ত পথের চারপাশে কোট স্থাপন করুন)। এখন আপনার আমার ব্যাচের ফাইলটি কাজের ভিত্তিতে সরাসরি 7z ব্যবহার করতে সক্ষম হওয়া উচিত।
করণ

১. আমি উভয়টির নামকরণ করেছি = = = = = = ২. আমি আপনার পরিবর্তনগুলি করেছি, তবে এটি এখনও 7z = = = = = = 3 দিয়ে কাজ করে না। $$ - এড্রাইভ indeed আসলে একমাত্র শীর্ষস্থানীয় ডিরেক্টরি। = = = = = 4. ত্রুটি বার্তা = = = = = ফাইলগুলির জন্য সতর্কতা: = = = = = = $$ - এড্রাইভ: সিস্টেমটি সেই ফাইলটি খুঁজে পায় না। = = = = = = = = = = "" $$ - এড্রাইভ: সিস্টেমটি সেই ফাইলটি খুঁজে পায় না = = = = = = = = = = = = সতর্কতা: 2 টি ফাইল খুঁজে পাওয়া যায় না = = = = = সি: rams প্রোগ্রামগুলি \ জিপার্স \ 7-জিপ> = = = = = নোট করুন যে দুটি সতর্কতা রয়েছে এবং দ্বিতীয়টি একটি ডাবল উদ্ধৃতি দিয়ে শুরু হয় ... অদ্ভুত?
প্রিন্সেসপুলারুলজ

0

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


সংরক্ষণাগারটিতে ফাইলগুলি জিপ করার সময় আপনি কীভাবে ফোল্ডার কাঠামোটি কীভাবে রাখবেন জানেন? তারা বলে যে এটি ডিফল্ট, তবে তা নয়।
প্রিন্সেসপুলারুলজ

@ ব্যবহারকারী ১৯47476767 - আমি এর মতো একটি কমান্ড লাইন ব্যবহার করি: 7-জিপের পথটি %ZDIR%\7z a -t7z -r -mx=1 %ZIP%\mydocu "c:\My Documents\*.*" -wc:\tempকোথায় ZDIRএবং ZIPগন্তব্য ড্রাইভ।
এমT_ হেড

0

সদৃশগুলিতে কীভাবে সহায়তা করবেন তা নিশ্চিত নন। তবে আমি মনে করি, প্রতি সম্পূর্ণ কমান্ড সহ ব্যাচের চেয়ে আরও সুবিধাজনক ব্যবস্থা হ'ল একটি তালিকা ফাইল তৈরি করা হবে: টেক্সট:

 C:\G\G1\35antique-shop.mp3
 C:\G\G2\35antique-shop.mp3
 MyArchive.7z C:\G\G1\09saguri.mp3
 MyArchive.7z C:\G\G2\09saguri.mp3

এবং তারপরে তাদের সমস্তকে সংকুচিত করুন 7z a -r -tzip archive.zip @listfile.txt


0

টোটাল সিএমডি "টোট-জিপ.ব্যাট" ব্যবহার করতে আমি একটি ব্যাট স্ক্রিপ্ট তৈরি করেছি:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

set "TOP_DIR="D:\Grabovsky""
set "archname="%TOP_DIR%\arch.zip""
set "filelist= "
cd %TOP_DIR%
for %%A in (%*) do (
    set ondisk_path="%%~dpnxA"
    set inarch_path=!ondisk_path:%TOP_DIR%\=!
    echo Putting !ondisk_path! to !inarch_path!.
    set "filelist=!filelist! !inarch_path!"
)
echo filelist: %filelist%

7z.exe a -tzip %archname% %filelist% > NUL
pause

তারপরে টোটাল সিএমডি এর জন্য একটি শর্টকাট তৈরি করুন: এখানে চিত্র বর্ণনা লিখুন

তারপরে আপনি যখন কিছু ফাইল / ফোল্ডার জিপ করতে চান এবং আপনার সম্পর্কিত ফোল্ডার কাঠামো সংরক্ষণ করতে চান তখন %TOP_DIR%প্রয়োজনীয় ফাইলগুলি (কোথাও কোথাও %TOP_DIR%) নির্বাচন করুন এবং বোতামটি টিপুন।

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