উইন্ডোজ এক্সপ্লোরারে সংক্ষিপ্ত বা সঙ্কুচিত ফাইলগুলি কীভাবে সন্ধান করব?


3

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

এনটিএফএস স্তরে সংক্ষেপিত বা সঙ্কুচিত ফাইলগুলি কীভাবে আমি ফিল্টার / অনুসন্ধান করতে পারি?

উইন্ডোজ এক্সপি এবং উচ্চতর ক্ষেত্রে কার্যত এমন একটি সমাধান (বেশ কয়েকটি হার্ডওয়্যার ডিভাইস রয়েছে যার জন্য ভিস্তা এবং আরও কিছু পাওয়ার জন্য কোনও ড্রাইভার উপলব্ধ নেই) are

উইন্ডোজ অনুসন্ধান যেহেতু খুব বেশি সিপিইউ নিবিড়, আমি সেগুলি ছাড়াও সমাধান চাই।

উত্তর:


6

কমান্ড লাইন ইন্টারফেস

উইন্ডোজ এক্সপি বাক্সের বাইরে সঙ্কোচিত ফাইলগুলির তালিকা দেওয়ার কোনও উপায় সরবরাহ করে না, এমনকি উন্নত অনুসন্ধান পদ্ধতিগুলিও এই জাতীয় কাজের জন্য ডিজাইন করা হয়নি। কমান্ড প্রম্পট উদ্ধারে আসে:

cd /d "C:\Some folder"
compact | findstr /c:" 1 C"

cdকমান্ড কেবল গন্তব্যের ডিরেক্টরি নেভিগেট করতে ব্যবহার করা হয়। যখন compactএটি তাদের কম্প্রেশন বিবরণ সহ সমস্ত ফাইল, যদি থাকে তালিকা প্রস্তুত করা যাবে কমান্ড পরামিতি ছাড়া চালানো হয়। আউটপুটটি এটিকে পুনর্নির্দেশের মাধ্যমে ফিল্টার করা যায় findstr। মূল্যবান জন্য, এই পদ্ধতিটি এমনকি উইন্ডোজ 2000 এ কাজ করা উচিত।

তবুও, আউটপুটটি বেশ ভার্জোজ। অতিরিক্ত তথ্য বের করতে আরও কিছু কাজ প্রয়োজন:

for /f "tokens=9,*" %A in ('"compact | findstr /c:" 1 C" "') do @dir /b "%A*%B" 2>nul

উপরের কমান্ডটি কেবল সংকুচিত ফাইলের নাম প্রদর্শন করবে। dirকমান্ড ফাইলের নাম যাচাই মিথ্যা positives এড়াতে সাহায্য করবে (যেমন স্ট্রিং সম্বলিত ঐ 1 Cতাদের নামটি দিয়ে)।

অতিরিক্ত পরামিতি আপনি ব্যবহার করতে পারেন:

  • /s সমস্ত সাবফোল্ডারগুলিতে কমান্ড প্রয়োগ করে।
  • /a লুকানো বা সিস্টেম ফাইলগুলি প্রদর্শন করে।

নোট করুন যে প্রয়োজনগুলির ক্ষেত্রে এই পরামিতিগুলি compactএবং dirকমান্ড উভয়ই ব্যবহার করতে হবে ।

সংক্ষিপ্ত ফাইলগুলিকে তালিকাবদ্ধ করতে, আপনি কমান্ডের /vপ্যারামিটারটি findstrফিল্টারটিকে বিপরীত করতে, এবং tokensমানটি পরিবর্তন করতে পারেন 8(কারণ যে সঙ্কুচিত ফাইলগুলিতে Cমার্কার নেই, যা স্ট্রিং টোকেনাইজেশনকে প্রভাবিত করে )।

আরও পড়া


অ্যাডভান্সড কোয়েরি সিনট্যাক্স

উইন্ডোজ অনুসন্ধান অনুসন্ধানগুলি অ্যাডভান্সড ক্যোয়ারী সিনট্যাক্সে (একিউএস) নির্দিষ্ট করা আছে যা কেবল সাধারণ পাঠ্য অনুসন্ধানগুলিকে সমর্থন করে না তবে উন্নত সম্পত্তি-ভিত্তিক ক্যোয়ারী ক্রিয়াকলাপ সরবরাহ করে।

সূত্র: উইন্ডোজ অনুসন্ধান - উন্নত ক্যোয়ারী সিনট্যাক্স

একিউএস প্রথম উইন্ডোজ ডেস্কটপ অনুসন্ধানের সাথে প্রবর্তিত হয়েছিল, যা পরে উইন্ডোজ সন্ধান হিসাবে উইন্ডোজ ভিস্টায় উন্নত ও সংহত করা হয়েছিল । আপনাকে পূর্ববর্তী অপারেটিং সিস্টেমে এটি আলাদাভাবে ইনস্টল করতে হবে

নিম্নলিখিত কোয়েরিতে আর্কাইভ বৈশিষ্ট্য সেট এবং সংকুচিত সমস্ত ফাইল তালিকাভুক্ত করা হবে। এটি উইন্ডোজ এক্সপি, ভিস্তা এবং in. এ কাজ করে It এটি উইন্ডোজ 8.x এও কাজ করা উচিত, যদিও আমি পরীক্ষা করেছিলাম না।

System.FileAttributes:(2080)

ইংরাজী লোকেলগুলিতে আপনি এটি ব্যবহার করতে পারেন:

attributes:(2080)

এখানে সর্বাধিক দরকারী মানগুলির একটি তালিকা রয়েছে:

FILE_ATTRIBUTE_READONLY = 1
FILE_ATTRIBUTE_HIDDEN = 2
FILE_ATTRIBUTE_SYSTEM = 4
FILE_ATTRIBUTE_ARCHIVE = 32
FILE_ATTRIBUTE_COMPRESSED = 2048
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192

উদাহরণে উপরে আমি মিলিত FILE_ATTRIBUTE_ARCHIVEএবং FILE_ATTRIBUTE_COMPRESSED: 32 + 2048 = 2080

লজিকাল ORঅপারেটর ব্যবহার করে আপনি যে কোনও সংমিশ্রণ সন্ধান করতে পারেন । উদাহরণস্বরূপ, সংক্ষেপিত ফাইলগুলি সন্ধান করতে যা কেবলমাত্র পঠনযোগ্য বা না:

System.FileAttributes:(2080 OR 2081)

অনুসন্ধানের ফলাফলগুলি উল্টাতে আপনি NOTঅপারেটরটি ব্যবহার করতে পারেন :

System.FileAttributes:NOT(2080 OR 2081)

আরও পড়া


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

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

এর জন্য দুঃখিত, এবং অনুসন্ধান সিপিইউতে নিবিড় যে এটি আমি কখনই বিবেচনা করব না। প্রশ্নে একটি নতুন সম্পাদনা করবে।
জেরোয়েন ওয়েয়ার্ট প্লুমাইমার্স

1
@ জিরোইনওয়েয়ারটপ্লাইমার্স আমি তৃতীয় পক্ষের সফ্টওয়্যার ছাড়াই কমান্ড-লাইন পদ্ধতি অন্তর্ভুক্ত করার জন্য আমার উত্তর আপডেট করেছি।
31415

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

0

and31415 উইন্ডোজ এক্সপ্লোরারের জন্য একটি দুর্দান্ত সমাধান পোস্ট করেছে যা কমপক্ষে উইন্ডোজ 7 এবং তারপরে কাজ করে (সম্ভবত ভিস্তার মধ্যে এটি পরে পরীক্ষা করবে)।

সুতরাং এক্সপি এবং 2003 এর মতো পুরানো উইন্ডোজ সংস্করণগুলির জন্য, আমি একটি কমান্ড-লাইন সমাধানের জন্য গবেষণা করেছি যা সংকুচিত বা সঙ্কোচিত ফাইলগুলির একটি তালিকা তৈরি করতে পারে।

Compact: দুর্দান্ত, তবে আউটপুট পার্স করা শক্ত

প্রথম ধারণাটি ছিল কমপ্যাক্ট , যা উইন্ডোজ দিয়ে জাহাজে ব্যবহার করা হয়েছিল using

এবং প্রকৃতপক্ষে এটি ফাইলগুলি তালিকাভুক্ত করতে পারে (যখন তাদের স্পেস থাকে তখন ডাবল কোটে প্যারামিটারগুলি আবদ্ধ করুন):

compact [filemask] /a /s:[directoryname]

ফর্ম্যাটটি মানুষের পক্ষে পড়া সহজ তবে পার্স করা সহজ নয়।

ফাইন্ডকম্প্রেসডে দীর্ঘ পথের নাম সহ একটি বাগ রয়েছে যা এই জাতীয় তালিকা দেয়:

C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\htmlinit3.htm
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\htmlpagenav.htm
...
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\html\imagessplash.jpg
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\imagestoolsbg.gif
...
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\scriptsunidata.js

নামগুলি যখন খুব দীর্ঘ হয় তখন এটি ফাইল বা ডিরেক্টরিগুলির কিছু অংশ কেটে দেয়।

# FindCompressed: সুন্দর, আউটপুট প্রথম / শেষ লাইনটি কেড়ে নেওয়া দরকার

এক্সডাস ডেভলপমেন্ট কমান্ড-লাইন সরঞ্জাম ফাইন্ডকম্প্রেসড লিখেছিল । পরামিতি ব্যতীত, এটি সংকুচিত ফাইলগুলি সন্ধান করে। সঙ্গে -suপরামিতি, এটা ডিকম্প্রেস করা ফাইল খুঁজে বের করে। [directoryname]এতে স্পেস থাকলে ডাবল উক্তিগুলিতে সংযুক্ত করুন ।

FindCompressed.exe -su [ডিরেক্টরি নাম]

FindCompressed একটি অপূর্ণতা রয়েছে: এটি সর্বদা এই লাইন দিয়ে আউটপুট শুরু করে যেখানে # টি [ডিরেক্টরি নাম]:

Recursive search of compact #.

এবং এর মতো একটি লাইনের সাথে শেষ হয়:

Found # uncompressed files in # items examined. 

এর মধ্যে লাইনগুলি সঙ্কুচিত বা সংকোচিত ফাইলের নামের পুরো পথ ধারণ করে।
এটি পার্স করা সহজ।


0

যেহেতু কমপ্যাক্ট Cএকটি স্থিত অবস্থানের উপর একটি দেখায় :

134217728 : 0 = 1.0 a 1 C BigFile.Dummy 123456789012345678901234567890123 = 33 তম অবস্থানটি এটি এনটিএফএস সংকুচিত হলে নির্দেশ করে।

যেহেতু সমস্ত সংকুচিত ফাইলগুলি 33 তম বর্ণের সি দিয়ে কমপ্যাক্ট দ্বারা তালিকাভুক্ত করা হয়েছে (কমপক্ষে যেখানে আমি এটি চালাচ্ছি সেখানে অন্যান্য ভাষাগুলি অন্যরকম হতে পারে), সম্ভবত এই আদেশটি সাহায্য করতে পারে:

compact /A | findstr /R ^................................C

/R indicates that the following is a regular expression ^ is to indicate look from beggining of line The 32 dots for ignoring 32st charaters of the line Then the C to indicate must look for a C at the 33th position, that indicates it is NTFS compressed

এটি যা করে তা হ'ল সমস্ত ফাইলের তালিকা তৈরি করা এবং তারপরে Cলাইনের শুরু থেকে 33 তম অবস্থানে সন্ধান করে ফিল্টার করা ।

যদি পুনরাবৃত্তি করতে চান, এমন একটি লুপের জন্য ব্যবহার করুন যা সমস্ত ডিরেক্টরি তালিকাভুক্ত করে এবং প্রতিটিটিতে সেই আদেশটি চালায়, এই বড় নমুনা কমান্ডের মতো (যদি সরাসরি কমান্ড লাইনে টাইপ করা থাকে):

(CD "C:\YourBaseDir\" && ECHO Listing NTFS compressed files and folders:  && (compact /A /I | findstr /R ^................................C) && for /F "delims=" %a in ('DIR /AD/B/S') do @(CD "%a" && ECHO Listing NTFS compressed files and folders on: "%a" && (compact /A /I | findstr /R ^................................C)) & CD "C:\YourBaseDir\")

আপনি যদি একটি ব্যাচ ফাইলের মধ্যে কমান্ডটি রাখেন, %aঅবশ্যই অবশ্যই দ্বিগুণ হবে %, সুতরাং অবশ্যই এটির মতো হওয়া উচিত (সমস্ত একটি বড় লাইনে):

(CD "C:\YourBaseDir\" && ECHO Listing NTFS compressed files and folders:  && (compact /A /I | findstr /R ^................................C) && for /F "delims=" %%a in ('DIR /AD/B/S') do @(CD "%%a" && ECHO Listing NTFS compressed files and folders on: "%%a" && (compact /A /I | findstr /R ^................................C)) && CD "C:\YourBaseDir\")

বা ব্যাচ ফাইলটিতে আরও ভাল পড়ার জন্য:

@ECHO OFF
CD "C:\YourBaseDir\"
ECHO Listing NTFS compressed files and folders:
compact /A /I | findstr /R ^................................C
for /F "delims=" %%a in ('DIR /AD/B/S') do @(
 CD "%%a"
 ECHO Listing NTFS compressed files and folders on: "%%a"
 compact /A /I | findstr /R ^................................C
)
CD "C:\YourBaseDir\"

সতর্কতা: কমপ্যাক্ট সংকুচিত ফোল্ডারগুলিও দেখাবে, এগুলির জন্য দ্বিগুণ প্রয়োজন এড়াতে।

ফলাফলটি এরকম:

Listing NTFS compressed files and folders:
        0 :         0 = 1.0 a 1 C a
134217728 :         0 = 1.0 a 1 C BigFile.Dummy
Listing NTFS compressed files and folders on: "D:\Temp\a"
        0 :         0 = 1.0 a 1 C b
134217728 :         0 = 1.0 a 1 C Other.Dummy
Listing NTFS compressed files and folders on: "D:\Temp\a\b"
134217728 :         0 = 1.0 a 1 C Another.Dummy

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

এটি ফলাফলের তালিকায় কেবল ফাইলগুলি (ফোল্ডার নয়) প্রদর্শন করার জন্য হবে (ভাল পাঠের সাথে একটি ব্যাচ ফাইলের অভ্যন্তরে):

@ECHO OFF
CD "D:\YourBaseDir\"
ECHO Listing NTFS compressed files:
for /F "delims=" %%a in ('DIR /A-D/B') do @(
 compact /A /I "%%a" | findstr /R ^................................C
)
for /F "delims=" %%a in ('DIR /AD/B/S') do @(
 for /F "delims=" %%b in ('DIR /A-D/B "%%a"') do @(
  ECHO Listing NTFS compressed files on: "%%a\"
  compact /A /I "%%a\%%b" | findstr /R ^................................C
 )
)

ফোল্ডারগুলি না দেখানোর কৌশলটি হ'ল কেবলমাত্র ফাইলের /A-Dপ্যারামিটার সংগ্রহ করতে একটি নির্দিষ্ট ফর ব্যবহার করা FOR; প্রতিটি স্বতন্ত্র ফাইলের জন্য কমপ্যাক্ট / ফাইন্ডস্টারে কল করার ব্যয়ে।

এবং দয়া করে নোট করুন CDযে এটি ডিরেক্টরিতে পরিবর্তিত হয় না ... এটি পরামিতি হিসাবে কমপ্যাক্ট করার জন্য ফাইলের পুরো পথটি অতিক্রম করে ... দীর্ঘ পথ সহ সতর্কতা !!!

ফলাফলটি তখন এর মতো (কোনও ফোল্ডার দেখানো হয়নি):

Listing NTFS compressed files:
134217728 :         0 = 1.0 a 1 C BigFile.Dummy
Listing NTFS compressed files on: "D:\Temp\a\"
134217728 :         0 = 1.0 a 1 C Other.Dummy
Listing NTFS compressed files on: "D:\Temp\a\b\"
134217728 :         0 = 1.0 a 1 C Another.Dummy

এটি ( sedউইন্ডোজগুলির জন্য জিএনইউ থেকে ) ব্যবহার করে ( এই পৃথিবীর সমস্ত জিনিস হিসাবে) উন্নত করা যেতে পারে যা কমপ্যাক্ট / ফাইন্ডস্টার জোড়ার ফাইলের নামটি কেটে দেয় এবং সেই পথ এবং sedফলাফলের সাথে মিলে যায় এমন একটি ইসিওও দিয়ে দেয় ।

আশা করি এটি কাজটির সাথে সহায়তা করতে পারে।

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