बैच फाइल से खाली टेक्स्ट फाइल कैसे बनाएं?


244

क्या कोई याद कर सकता है कि BAT फाइल का उपयोग करके MSDOS में एक खाली फाइल बनाने की कमांड क्या थी?


3
इसके अलावा stackoverflow.com/questions/1702762 पर , "कमांड लाइन पर एक खाली फाइल कैसे बनाएं?"।
पीटर मोर्टेंसन

6
आप डॉस को भ्रमित नहीं कर रहे हैं और cmd.exeक्या आप हैं?
उपयोगकर्ता अज्ञात

READ ME: Set-Content "your_file.txt" .gitignore -Encoding utf8यह केस-संवेदी है और utf8 एन्कोडिंग को बल देता है! (मैंने इसे उत्तर के रूप में भी पोस्ट किया है)।
वोल्फपैक'08

जवाबों:


235
echo. 2>EmptyFile.txt

49
हालांकि यह एक नई पंक्ति को प्रतिध्वनित करता है, हालांकि ... मेरा उत्तर नहीं है।
इफेमिएंट

7
कभी-कभी यह प्रासंगिक है; जब तक मुझे 0-बाइट फ़ाइलों को प्राप्त करने के उद्देश्य से एनयूएल (या एनयूएल> फ़ाइल) टाइप करने का विचार मिला, तब तक मैं चारों ओर झूठ बोलता था। :-)
जोय

18
एपेमिएंट के उत्तर और इस एक को मर्ज करने के लिए, आप ऐसा कर सकते हैं: "इको।> NUL 2> EmptyFile.txt" उसी परिणाम को प्राप्त करने के लिए बिना किसी नई
रेखा के

7
क्यों है .मेंecho.
निन्ह फाम

3
@ रीगन यदि आप echo 2बिना उपयोग करते हैं ., तो कंसोल "ECHO बंद है" पढ़ेगा। echo. 2केवल एक नई लाइन प्रदर्शित करके प्रभावी रूप से साइलेंस कंसोल आउटपुट का उपयोग करना ।
वनमनबैंड

362
कॉपी NUL EmptyFile.txt

डॉस के पास कुछ विशेष फाइलें (उपकरण, वास्तव में) मौजूद हैं, जो कि हर निर्देशिका में मौजूद हैं, NULUNIX के बराबर है /dev/null: यह एक जादू की फाइल है जो हमेशा खाली होती है और जो कुछ भी आप इसे लिखते हैं उसे फेंक देते हैं। यहां कुछ अन्य लोगों की सूची दी गई है; CONकभी-कभार उपयोगी भी है।

किसी भी आउटपुट से बचने के लिए, आप उपयोग कर सकते हैं

copy / y NUL EmptyFile.txt> NUL

/ycopyएक सवाल पूछने से रोकता है जिसे आप नहीं देख सकते कि आउटपुट कब जाता है NUL


36
+1 - प्रश्न एक खाली फ़ाइल बताता है , इसलिए स्वीकृत उत्तर गलत है।
जो

9
DannySmurf का समाधान वास्तव में एक खाली फ़ाइल बनाता है - एक नई पंक्ति stdout में जाती है, कुछ भी stderr (नई फ़ाइल में निर्देशित) नहीं जाती है। लेकिन +1 वैसे भी धन्यवाद के लिए
-08 को

2
प्रकार nul> EmptyFile.txt सबसे छोटा समाधान है। फिर भी आपका उत्तर बेहतर है तो स्वीकृत समाधान, क्योंकि आपकी फ़ाइल वास्तव में खाली हो जाएगी। +1
TPAKTOPA

3
चेतावनी: हाँ सवाल यह था कि एक खाली फ़ाइल कैसे बनाई जाए, हालाँकि आमतौर पर आप "फ़ाइल मौजूद है यह सुनिश्चित करना चाहते हैं"। copy /Y NULकमांड का उपयोग करते समय यह मौजूदा सामग्री को मिटा सकता है। यदि आप यूनिक्स की touchकमांड के लिए उपयोग किए जाते हैं , तो यह वह नहीं हो सकता है जो आप अपेक्षा करते हैं।) type NUL >> emptyfile.txtइस संबंध में उपयोग सुरक्षित है।
मई'15

मुझे CONइस उत्तर में लिंक से अलग कोई जानकारी नहीं मिली । क्या कोई प्रकाश पढ़ने को साझा कर सकता है?
सिंजई

182
type NUL > EmptyFile.txt

पिछली दो पोस्टों को पढ़ने के बाद, दोनों का यह मिश्रण है जो मैं लेकर आया हूं। यह थोड़ा साफ लगता है। कॉपी किए गए "1 फ़ाइल (ओं) को पुनर्निर्देशित करने के बारे में चिंता करने की कोई आवश्यकता नहीं है।" NULपिछले पोस्ट की तरह संदेश , और यह अच्छा लग रहा है ECHO OutputLineFromLoop >> Emptyfile.txtकि आम तौर पर एक बैच फ़ाइल में पालन करेंगे।


13
+1 यह स्वाभाविक बात है जो पहली बार दिमाग में आती है, न कि स्ट्राइडर आदि के साथ विरोधाभास
अमित नायडू

2
तुम सही हो। यह तरीका कॉपी कमांड पर / y फ्लैग को दिखाता है।
djangofan

छोटा और आसान। यहाँ कुछ अन्य समाधान शून्य बाइट्स की एक नई फ़ाइल नहीं बनाते हैं!
क्रिश्चियन सेंट

66

अन्य उत्तरों से एकत्रित तकनीकें:

0 बाइट फ़ाइल को बहुत स्पष्ट, पिछड़े-संगत तरीके से बनाता है:

type nul >EmptyFile.txt

इसके माध्यम से विचार करें: अनाम , डैनी बैकेट , संभवतः अन्य, स्वयं जेडीबीपी के काम से प्रेरित हैं

0 बाइट का एक और तरीका , यह बैकवर्ड-कम्पेटिबल-लुकिंग है:

REM. >EmptyFile.txt

विचार के माध्यम से: जोहान्स

एक 0 बाइट फ़ाइल 3 तरफा पिछड़े-संगत-दिखने वाली भी है:

echo. 2>EmptyFile.txt

के माध्यम से विचार: TheSmurf

Windows 2000 के बाद से संभवतः व्यवस्थित रूप से उपलब्ध एक 0 बाइट फ़ाइल :

fsutil file createnew EmptyFile.txt 0

विचार के माध्यम से: ईएमएम

एक 0 बाइट्स आसानी से फाइल को अधिलेखित कर देता है

ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL

विचार के माध्यम से: copyitright

एक एकल न्यू लाइन (2 बाइट्स: 0x0D 0x0Aमें हेक्स अंकन , वैकल्पिक रूप से के रूप में लिखा \r\n):

echo.>AlmostEmptyFile.txt

नोट: के बीच कोई स्थान नहीं है echo, .और >

विचार के माध्यम से: आप बैच फ़ाइलों में एक नई पंक्ति कैसे गूँज सकते हैं?


संपादित करें ऐसा लगता है कि किसी भी अमान्य कमांड को एक फ़ाइल पर पुनर्निर्देशित करने से एक खाली फ़ाइल बन जाएगी। हे, एक सुविधा! अनुकूलता: uknown

TheInvisibleFeature <nul >EmptyFile.txt

एक 0 बाइट्स फाइल: अमान्य कमांड / एक यादृच्छिक नाम (संगतता: uknown):

%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt

के माध्यम से: त्रिशंकु Huynh द्वारा यादृच्छिक के लिए महान स्रोत

2 संपादित करें एंड्री एम अवैध कमांड के माध्यम से इसे प्राप्त करने के लिए संभवतः सबसे मनोरंजक / उत्तेजक तरीका बताते हैं

एक 0 बाइट्स फ़ाइल: अमान्य कमांड / फ़ंकी तरीका (संगतता: अज्ञात)

*>EmptyFile.txt

विचार के माध्यम से: एंड्री एम

एक 0 बाइट्स 4-फाइल करने का तरीका :

break > file.txt

विचार के माध्यम से: foxidrive डबल ग्रास की टिप्पणी के लिए धन्यवाद !


यह , वास्तव में type nul ...नहीं है type <nul ...
एंड्री एम

@AndriyM धन्यवाद आप सही हैं मैंने संपादन किया है! ध्यान नहीं दिया क्योंकि दिलचस्प रूप से यह गलत के साथ काम करता है। जिसका अर्थ यह हो सकता है कि फ़ाइल नाम पर पुनर्निर्देशित कोई भी अमान्य आदेश एक खाली फ़ाइल बनाएगा! बस के साथ की कोशिश की NonExistentCommand <nul >EmptyFile.txtऔर यह काम किया
n611x007

चूँकि यह हार्डकॉस्टेड कमांड नाम पर भरोसा करने के लिए असुरक्षित होगा, इसलिए इसे "अमान्य" होने की उम्मीद है, मैंने एक यादृच्छिक कमांड नाम विकल्प जोड़ा
n611x007

2
फिर भी एक और: break > file.txtप्रॉप्स फॉक्सड्राइव
ग्रास डबल

3
और आदेशों से अधिकांश के साथ इस्तेमाल किया जा सकता >>है अगर आप "मौजूद होना चाहिए, लेकिन अगर अस्तित्व छोटा कर दिया नहीं किया जाना चाहिए" की जरूरत है (यूनिक्स की तरह touchकरता है)
Eckes

25

रेम। > खाली.फाइल


मैं विंडोज सीई पर अटका हुआ हूं, और यह एकमात्र उत्तर है जो फ़ाइल बनाता है और खाली करता है! अन्य दृष्टिकोण या तो एक रिक्त रेखा जोड़ते हैं या बस काम नहीं करते हैं ...
एंटोनीजी

इस समाधान के साथ एकमात्र समस्या यह है कि यदि वर्तमान निर्देशिका में REM नामक एक फाइल है, और आप टाइप करते हैं REM., तो cmd "रेम पर" का जवाब देगा। एक आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता प्राप्त नहीं है। "
DodgyCodeException

@DodgyCodeException, उस समस्या rem/का rem.हल निकालने के बजाय ...
aschipfl

@aschipfl धन्यवाद, यह दिलचस्प है। यह भी दिलचस्प है कि 2010 के इस उत्तर ने कई वर्षों तक एक-दूसरे से टिप्पणी की है। एक धीमी बातचीत!
DodgyCodeException

8

यदि कोई संभावना है कि लिखित फ़ाइल पहले से मौजूद है और केवल पढ़ने के लिए है, तो निम्न कोड का उपयोग करें:

ATTRIB -R filename.ext
CD .>filename.ext

यदि कोई फ़ाइल मौजूद नहीं है, तो बस करें:

CD .>filename.ext

(DodgyCodeException की टिप्पणी के अनुसार अद्यतन / परिवर्तित कोड)

उत्पन्न होने वाली किसी भी त्रुटि को दबाने के लिए:

ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL

1
इस समाधान के साथ एकमात्र समस्या यह है कि यदि CDवर्तमान निर्देशिका में कोई फ़ाइल (कोई एक्सटेंशन) नहीं है, और आप टाइप करते हैं CD., तो cmd "CD" के साथ जवाब देगा। एक आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता प्राप्त नहीं है। " यदि आप इसके बजाय टाइप करते हैं CD .(डॉट से पहले एक स्थान के साथ) तो यह काम करेगा।
DodgyCodeException


7

पुस्तकों में जोड़ने के लिए एक और - टाइप करने के लिए छोटा और मीठा।

break>file.txt
break>"file with spaces in name.txt"

मुझे लगता है कि हम woyld को छोड़ते हैं
Nam G VU

@NamGVU उद्धरण का उपयोग लक्ष्य फ़ाइल नाम में किया जाता है, यदि आप लंबे फ़ाइल नाम जैसे कि अंतरिक्ष या आदि का उपयोग करना चुनते हैं, तो वे फ़ाइल सामग्री का हिस्सा नहीं हैं।
foxidrive

हाँ, मैं सहमत हूं ^ ^ चर्चा के अनुसार आपका अपडेट करने की अनुमति।
नाम जी वीयू

@NamGVU उद्धरण एक लंबे फ़ाइल नाम के साथ या उसके बिना छोड़ा जा सकता है। मुझे लगता है कि अगर यह संक्षिप्त नाम के साथ कमांड लाइन से टाइप किया जाता है, तो आप अनावश्यक टाइपिंग नहीं करना चाहेंगे।
foxidrive

मैं इस उत्तर से दूसरी पंक्ति को हटाने का सुझाव देता हूं। IMO यह इस सवाल पर अब तक का सबसे अच्छा जवाब है, लेकिन दूसरी पंक्ति वास्तव में मूल्य नहीं जोड़ती है जब तक कि इसका उपयोग करने की कोशिश करने वाला व्यक्ति कमांड-लाइन के लिए सफेद-अंतरिक्ष हैंडलिंग की मूल बातें नहीं जानता है।
kayleeFrye_onDeck

2

आप TYPEइसके बजाय एक कमांड का उपयोग कर सकते हैं COPY। इसे इस्तेमाल करे:

TYPE File1.txt>File2.txt

कहां File1.txtखाली है।


3
आप यह भी कर सकते हैंtype NUL>File2.txt
डैनी बेकेट

6
BTW, File1.txt कैसे प्राप्त करें?
22-30 बजे TomeeNS

1

आप निम्नानुसार SETएक अशक्त byteफ़ाइल बनाने के लिए भी उपयोग कर सकते हैं

set x=x > EmptyFile.txt

या यदि आप एक अतिरिक्त वैरिएबल बनाना नहीं चाहते हैं तो मौजूदा वैरिएबल को फिर से असाइन करें

set PROMPT=%PROMPT% > EmptyFile.txt

या इस तरह:

set "PROMPT=%PROMPT%" > EmptyFile.txt

0

अनंत दृष्टिकोण हैं।

कुछ भी नहीं है कि उत्पादन:

break
cls
color
goto
pushd
popd
prompt
title

अजीब कमांड्स:

CD.
REM.
@echo off
cmd /c
START >FILE

पुरानी printकमांड एक खाली फाइल तैयार करती है:

print /d:EMPTY_TEXT_FILE nul

-2

सबसे आसान तरीका है:

echo. > Filename.txt


8
- यह एक अंतरिक्ष चरित्र एक गाड़ी वापसी चरित्र एक नई लाइन चरित्र के द्वारा पीछा किया, जिसके बाद साथ एक फ़ाइल बनाने जाएगा नहीं एक खाली फ़ाइल।
एंड्री एम

मेरे जवाब (नीचे) को देखने के लायक है क्योंकि यह एन्कोडिंग को बदलता है।
वोल्फपैक'08

-3

जरूरी:

यदि आप एन्कोडिंग सेट नहीं करते हैं, तो कई सॉफ्टवेअर टूट सकते हैं। git एक बहुत लोकप्रिय उदाहरण है।

Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8 यह केस-संवेदी है और utf8 एन्कोडिंग को बल देता है!


3
खाली फ़ाइल बनाने के लिए एन्कोडिंग कैसे प्रासंगिक है ? एक अशक्त बाइट फ़ाइल को किसी एन्कोडिंग की आवश्यकता नहीं होती है और इसे BOM (0 बाइट्स) के साथ चिह्नित करना मुश्किल है
jeb

@ जेईबी क्योंकि लोग खाली फाइलों को भरते हैं, और जब भरी हुई फ़ाइलों को सेटिंग्स फाइलों के रूप में उपयोग किया जाता है, तो वे तब बनाते हैं जब वे UTF8 नहीं होते हैं। वास्तव में, मैं कहूंगा कि लोग लगभग हमेशा फाइलें भरते हैं और उन्हें खाली नहीं छोड़ते हैं, और मैं खाली फाइल बनाने के लिए किसी अन्य विधि का उपयोग नहीं करूंगा, जिसे मैंने बाद में बदलने का इरादा किया क्योंकि मैं हमेशा चाहता हूं कि मेरी फाइलें निश्चित रहें UTF8 हैं। उदाहरण के लिए, जीथब पर .गित ट्यूटोरियल उपयोगकर्ता को एक खाली फ़ाइल बनाने के लिए कहता है जो बाद में भरी जाती है, और दूसरी विधि अजीब विंडोज एन्कोडिंग के साथ एक फ़ाइल बनाती है।
वोल्फपैक'08
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.