कमांड प्रॉम्प्ट में एक फाइल का आकार बदलें?


14

मैं कमांड प्रॉम्प्ट (या बैच फ़ाइल में) से फ़ाइल का आकार कैसे बदल सकता हूं?

  • इसे फ़ाइल को बाइनरी के रूप में मानने की आवश्यकता हैफ़ाइल स्वरूप अप्रासंगिक और मनमाना है।

  • फ़ाइल का विस्तार इसे शून्य के साथ पैड करना चाहिए।

  • फ़ाइल को सिकोड़कर फ़ाइल को छोटा कर देना चाहिए।

दूसरे शब्दों में:

आप SetEndOfFileकमांड प्रॉम्प्ट में कार्यक्षमता की नकल कैसे करते हैं ?


आप डिस्कपार्ट को आजमा सकते हैं ।
jpaugh

जवाबों:


10

मुझे विश्वास नहीं है कि कार्यक्षमता DOS शेल में मूल रूप से मौजूद है, मुझे संदेह है कि आपको काम पाने के लिए किसी अन्य प्रोग्राम का उपयोग करने की आवश्यकता है। यहाँ कुछ संभावनाएं हैं:

  1. एक उपकरण है जिसे Trunc कहा जाता है जो दावा करता है कि आप उसके बाद क्या कर रहे हैं:

    Trunc एक विंडोज़ कमांड-लाइन ऐप है जो एक निर्धारित आकार में फाइलों को काटती है। एक फ़ाइल का विस्तार करने के लिए भी प्रयोग करने योग्य है।

    आपको यह पता लगाने की कोशिश करनी होगी कि फ़ाइल कैसे गद्देदार हो रही है (जैसे शून्य या कचरा के साथ) लेकिन यह आपके द्वारा पूछे जा रहे बिल को फिट करने के लिए लगता है।

  2. fsutil एक विंडोज़ एक्सपी और ऊपर का सिस्टम टूल है जो कुछ कार्यक्षमता के लिए प्रतीत होता है जो मदद कर सकता है। विशेष रूप से fsutil fileउपकमांड बनाने, लंबाई सेट करने और शून्य भरण फ़ाइलों को भी सक्षम करने में सक्षम प्रतीत होता है।

    विशेष रूप से:

    fsutil file createnew "C:\temp\myfile" 1024

    एक शून्य से भरी 1024 बाइट फ़ाइल बनाएगा, लेकिन मैं फ़ाइल को छोटा करने का तरीका नहीं देख सकता। एक आदेश है जो मान्य डेटा लंबाई सेट करता है, लेकिन यह EOF मार्कर को संशोधित करने के लिए प्रकट नहीं होता है:

    सेटवैलिड्टा का उपयोग करना

    NTFS में, फ़ाइल की लंबाई की दो महत्वपूर्ण अवधारणाएँ हैं: फ़ाइल का अंत (EOF) मार्कर और वैध डेटा लंबाई (VFL)। EOF फ़ाइल की वास्तविक लंबाई इंगित करता है। VDL डिस्क पर मान्य डेटा की लंबाई की पहचान करता है। VDL और EOF के बीच कोई भी रीडिंग C2 ऑब्जेक्ट का पुन: उपयोग की आवश्यकता को बनाए रखने के लिए स्वचालित रूप से 0 लौटाता है।

  3. यूवीएचडी एक हेक्स संपादक है जो उन कार्यों के लिए प्रकट होता है जिन्हें आप पूछ रहे हैं। एकमात्र समस्या यह है कि यह केवल विंडोज / एसएफयू (यूनिक्स के लिए सेवाएं) और डीओएस के तहत काम करता है। वास्तव में अंत उपयोगकर्ता के लिए इसका क्या मतलब है जो मैं वास्तव में नहीं जानता, लेकिन मुझे एक अस्पष्ट संदेह है कि एसएफयू विस्टा और विन 7 में गिरा दिया गया था।


1
आह ठीक है। धन्यवाद, truncमुझे क्या चाहिए। ओह, और एक नोट: एसएफयू (या बल्कि, एसयूए - "यूनिक्स-आधारित अनुप्रयोगों के लिए सबसिस्टम", उर्फ ​​इंटरिक्स) विंडोज 7 में नहीं गिराया गया था; यह अभी परम संस्करण में एक वैकल्पिक घटक है, दुर्भाग्य से। : \
user541686

आह, काफी निष्पक्ष, मैं SUA / SFU पर जानकारी के रास्ते में ज्यादा नहीं मिल सका, हालांकि ईमानदार होने के लिए मैं बहुत करीब से नहीं देखा था। मैंने fsutilअपने जवाब का उपयोग करके और संपादित की गई मनमानी लंबाई की फ़ाइलों को बनाने का एक और तरीका भी पाया है , लेकिन जैसा कि मैंने उल्लेख किया है कि मैं फ़ाइलों को कम करने का एक वैध तरीका नहीं देख सकता।
Mokubai

वैसे, मुझे लगा कि मैं कुछ इंगित करूंगा: मेरा मानना ​​है कि वैध डेटा लंबाई डिस्क पर फ़ाइल की आभासी लंबाई है, भौतिक लंबाई नहीं। यदि फ़ाइल संकुचित है, उदाहरण के लिए, यह वास्तव में छोटा हो सकता है - आपको फ़ाइल के संकुचित आकार की आवश्यकता होगी।
user541686

5
copy /Y nul: file.txt

केवल 0 बाइट्स की स्थापना के लिए, बिल्कुल।


2
यह वास्तव में इस सवाल का जवाब नहीं लगता है।
मनिशिथ

+1 मैं सहमत हूं कि यह सही उत्तर नहीं है, लेकिन यह बिल्कुल वही है जो मैं यहां खोज रहा था - विंडोज कमांड लाइन से किसी फाइल को कैसे छोटा किया जाए।
डैन एटकिंसन

2

यदि आपके पास GnuWin32 स्थापित है, तो आप इसे करने के ddलिए उपयोग कर सकते हैं ।

dd if=nul of=/the/file/to/truncate bs=1 count=0 seek=the_file_size oflag=append

dd पोटेंशियल मुझे कभी विस्मित करने की आज्ञा नहीं देता, कमांड काम करता है लेकिन if = nul के बिना।
भी

2

विंडोज के लिए मेरे बीएसडी ट्रंकट बिल्ड का प्रयास करें ।

EDIT: यह फ़ाइलों के साथ काम नहीं कर रहा है> 2GB।

वैकल्पिक जो बड़ी फ़ाइलों के साथ काम करता है:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.