মূল ফাইল এক্সটেনশনটি অন্তর্ভুক্ত না করে আমি কীভাবে একাধিক ফাইলগুলি জিপ করতে পারি?


2

আমি একাধিক ফাইল জিপ করার চেষ্টা করছি তবে এই সমস্যাটি নিয়ে আসছি যা আমার কোডটি অবশ্যই কাজ করে না। কোডটি এখানে:

for /r %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X"

আমি একটি ডিরেক্টরিতে একাধিক ফাইল 7z করার চেষ্টা করছি তবে আমি "Foobar.txt.7z" এর মতো ফর্ম্যাটে আমার ফাইলগুলি পেতে থাকি তবে পরিবর্তে আমি এটি "Foobar.7z" হতে চাই আমার কাছে কয়েক হাজার ফাইল রয়েছে এবং আমি এটি জানি একটি সহজ ফিক্স হবে আমি জানি না কিভাবে।

উত্তর:


1

আমি "Foobar.txt.7z" এর মতো ফর্ম্যাটে আমার ফাইলগুলি পেতে থাকি

for /r %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X"

আপনার থেকে এক্সটেনশনটি সরিয়ে ফেলতে হবে %%X। আপনি এক্সপ্রেশন ব্যবহার করে এটি করতে পারেন %%~nX:

for /r %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%~nX.7z" "%%X"

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

> dir /b test.*
test.cmd
test.ps1
test.sh
test.txt

একটি ব্যাচ ফাইলে নিম্নলিখিতটি ব্যবহার করে:

for /r %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%~nX.7z" "%%X"

উপরের ফাইলগুলির জন্য নিম্নলিখিত উত্পাদন করবে:

"c:\Program Files\7-Zip\7z.exe" a "test.7z" "F:\test\test.cmd"
"c:\Program Files\7-Zip\7z.exe" a "test.7z" "F:\test\test.ps1"
"c:\Program Files\7-Zip\7z.exe" a "test.7z" "F:\test\test.sh"
"c:\Program Files\7-Zip\7z.exe" a "test.7z" "F:\test\test.txt"

একই সংরক্ষণাগারে একাধিক ফাইল যুক্ত করা আপনার উদ্দেশ্য না হলে আপনার যদি এই জাতীয় কোনও নকল সংরক্ষণাগার নামগুলির সাথে ডিল করার একটি উপায় বের করতে হবে।

কমান্ড লাইন থেকে আপনি প্রতিস্থাপন করতে পারেন %%সঙ্গে %নিম্নরূপ:

for /r %X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%~nX.7z" "%X"

আরও পড়া


যে কোড রান না এবং এটা কারণ আপনার কেবলমাত্র একটি "%" প্রয়োজন 2. ত্রুটি হয় এবং%%X was unexpected at this time.
HackSlash

1
@ হ্যাকস্ল্যাশ এটি একটি ব্যাচ ফাইলে কাজ করে, যা ওপি ব্যবহার করছিল। উত্তর আপডেট হয়েছে।
DavidPostill

1

আপনি আপনার কমান্ডে .7z এক্সটেনশান সহ পুরো ফাইলের নামটি উল্লেখ করছেন। আসুন এটি করা বন্ধ করুন:

for /r %X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%~nX" "%X"

বিবরণ: আপনি ডস ভেরিয়েবল ব্যবহার করছেন। % এক্স হল ভেরিয়েবল। ভেরিয়েবলগুলি ম্যানিপুলেট করার জন্য ডসের মধ্যে বিভিন্নতা রয়েছে। "~ N" এক্সটেনশন ছাড়াই চলক থেকে ফাইলের নাম প্রকাশ করে।

FROM: https://www.computerhope.com/forhlp.htm

% ~ nI% I কেবল একটি ফাইলের নামে প্রসারিত করে

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