विंडोज में कमांड लाइन पर एक खाली फाइल कैसे बनाएं?


494

डॉस / विंडोज कमांड-लाइन पर एक खाली फाइल कैसे बनाएं?

मैंने कोशिश की:

copy nul > file.txt

लेकिन यह हमेशा दिखाता है कि एक फ़ाइल की प्रतिलिपि बनाई गई थी।

क्या मानक cmd में कोई अन्य विधि है?

यह एक ऐसी विधि होनी चाहिए जिसके लिए Cygwin या किसी अन्य गैरमानक कमांड से टच कमांड की आवश्यकता न हो । कमांड को स्क्रिप्ट से चलाने की आवश्यकता होती है इसलिए कीस्ट्रोक्स का उपयोग नहीं किया जा सकता है।


बस एक खाली बैच (0 बाइट) के परिणामस्वरूप एक सच्चा बैच कमांड मिला: मैंने अपना उत्तर अपडेट कर दिया है।
VonC

3
डुप्लिकेट: stackoverflow.com/questions/210201 , "बैच फ़ाइल से खाली टेक्स्ट फ़ाइल कैसे बनाएं?"। (लेकिन, IMHO, उत्तर यहां बेहतर हैं।)
पीटर मोर्टेंसन

हां, कमांड कॉपी nul> file.txt पाठ "1 फ़ाइल (ओं) की प्रतिलिपि बनाई गई है।" खाली फ़ाइल नहीं बनाई गई है।
रिपन अल वसीम

5
यह मेरे लिए सिर्फ यह साबित करता है कि यदि आप एक कमांड के साथ एक सादा खाली फ़ाइल नहीं बना सकते हैं तो MS-DOS कचरा है।
कोलोब कैनियन

2
@KolobCanyon: आप निश्चित रूप से, पहले से ही पोस्ट किए गए उत्तरों के अनुसार कर सकते हैं। लेकिन क्या आपको वास्तव में लगता है कि खाली फाइल बनाने की क्षमता अंत उपयोगकर्ताओं के लिए एक ऑपरेटिंग सिस्टम के लिए प्राथमिकता होनी चाहिए और 16K RAM में चलने की आवश्यकता है? यह कुछ दुर्लभ किनारे के मामलों को छोड़कर, आखिरकार, विशेष रूप से उपयोगी चीज नहीं है।
हैरी जॉन्सटन

जवाबों:


571

पुनर्निर्देशन के बिना , ल्यूक वु या एरिक कोंस्टांटोपोलोस इंगित करते हैं:

copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt

" कैसे एक बैच फ़ाइल से खाली पाठ फ़ाइल बनाने के लिए? " (2008) यह भी इंगित करता है:

type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive

बंजारा एक मूल का उल्लेख करता है :

C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.

C:\Users\VonC\prog\tests>dir

 Folder C:\Users\VonC\prog\tests

27/11/2013  10:40    <REP>          .
27/11/2013  10:40    <REP>          ..
27/11/2013  10:40                 0 empty_file

उसी भावना में, शमूएल टिप्पणियों में सुझाव देता है :

सबसे छोटा जो मैं उपयोग करता हूं वह मूल रूप से खानाबदोश द्वारा एक है:

.>out.txt

यह एक त्रुटि देता है:

'.' is not recognized as an internal or external command

लेकिन यह त्रुटि stderr पर है। और >केवल स्टडआउट को पुनर्निर्देशित करता है, जहां कुछ भी उत्पादन नहीं किया गया है।
इसलिए एक खाली फ़ाइल का निर्माण । त्रुटि संदेश की उपेक्षा यहाँ की जा सकती है।


(मूल उत्तर, नवंबर 2009)

echo.>filename

(echo "" फ़ाइल में वास्तव में "" डाला जाएगा! और echo'' के बिना '' Command ECHO activatedफ़ाइल में " " डाल देगा ...)

नोट: परिणामी फ़ाइल खाली नहीं है लेकिन इसमें रिटर्न लाइन अनुक्रम शामिल है: 2 बाइट्स।


यह चर्चा वास्तविक खाली फ़ाइल के लिए एक सच्चे बैच समाधान की ओर इशारा करती है:

 <nul (set/p z=) >filename

 dir filename
 11/09/2009  19:45                 0 filename
 1 file(s)                         0 bytes

" <nul" कमांड के nulप्रति प्रतिक्रिया को पाइप करता है set/p, जिसके कारण उपयोग किया गया वैरिएबल अपरिवर्तित रहेगा। हमेशा की तरह set/p, समान चिह्न के दाईं ओर स्ट्रिंग को CRLF के साथ संकेत के रूप में प्रदर्शित किया गया है।

चूंकि यहां "समान चिह्न के दाईं ओर स्ट्रिंग" रिक्त है ... परिणाम एक खाली फ़ाइल है।


के साथ अंतर cd. > filename(जो पैट्रिक कफ के जवाब में वर्णित है और एक 0-बाइट-लंबाई फ़ाइल भी उत्पन्न करता है) यह है कि यह "बिट पुनर्निर्देशन" ( <nul...चाल) का उपयोग किसी भी सीआर के बिना लाइनों को प्रतिध्वनित करने के लिए किया जा सकता है :

<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt

dirआदेश फ़ाइल आकार का संकेत देना चाहिए के रूप में 11 बाइट्स: " helloworld!"।


2
आप वास्तव में चाहते हैं echo.>filenameक्योंकि इसमें स्थान के साथ-साथ न्यूलाइन वर्ण भी शामिल होगा।
एजेंट_9191

1
remकमांड का उपयोग करने से इसमें एक खाली लाइन के साथ एक फाइल बनाने से बचा जाता है।
ग्रेग हेवगिल

@ Agent_9191: सच है, मैंने अपना जवाब अपडेट कर दिया है। @Greg: निश्चित नहीं कि आपका क्या मतलब है: rem>filenameएक ही परिणाम (2 बाइट्स) पैदा करता है
VONC

3
नौफ़ल इब्राहिम: यह मूर्ख मत बनने दो; बस अगला जवाब देखें जिसमें बहुत आसान और समान रूप से काम करने वाला समाधान है। यहां जो किया गया है वह पहले मामले में आंशिक रूप से गलत है (खाली नहीं है लेकिन एक पंक्ति विराम शामिल है) और दूसरे तरीके में ओवरक्लॉम्पलेट किया गया है।
जॉय

1
@barlop हां: यह वह बिंदु है: यह stderr पर कुछ त्रुटि संदेश को ट्रिगर करता है, लेकिन stdout पर कुछ भी नहीं (खाली स्ट्रिंग)। और >पुनर्निर्देशन केवल करने के लिए out.txt। इसलिए एक खाली फ़ाइल का निर्माण। आप इस संदर्भ में त्रुटि संदेश की उपेक्षा कर सकते हैं।
वॉनसी

270

इसे इस्तेमाल करे:

type NUL > 1.txt

यह निश्चित रूप से एक खाली फ़ाइल बनाएगा।


यह फ़ाइल में "NUL is ./NUL" जोड़ता है
dshgna

106

यहाँ एक और तरीका है:

cd. > filename

11
cd. > filenameकाम के बदले मेरे लिए काम नहीं कर रहा है cd > filename !
नवेंदा

3
"cd। फ़ाइल नाम" खाली फ़ाइल बनाता है और आपके पास "cd> फ़ाइल नाम" कमांड का उपयोग करके आपकी नई बनाई गई फ़ाइल में मुद्रित फ़ाइलपथ होगा।
निकेतन

6
इसका इस्तेमाल करें: cd . > filename.extensionमतलब आपको बीच में एक जगह चाहिए cdऔर.
AI

77

यदि आप वास्तव में पूरी तरह से खाली फ़ाइल चाहते हैं, बिना किसी आउटपुट के, तो आप थोड़ा धोखा दे सकते हैं:

copy nul file.txt > nul

बस ndul को रीडायरेक्ट करें, और कॉपी से आउटपुट गायब हो जाता है।


1
यदि फ़ाइल मौजूद है तो यह विफल रहता है।
ग्रेंडलर

6
यदि फ़ाइल मौजूद है तो विफल होना अच्छा है क्योंकि मैं प्रश्न को समझता हूं।
wallyk

32
+1। यह आश्चर्यजनक है कि स्वीकृत उत्तर कुछ आधा-गलत और आधा जटिल है, जबकि स्पष्ट रूप से सही होने पर लगभग कोई क्रेडिट नहीं मिलता है। इसे जोड़ने के लिए: type nul>fileएक और तरीका होगा।
जॉय

@ जो स्वीकार किए जाते हैं उनके पास समाधानों का एक समूह होता है जो खाली 0 बाइट फ़ाइल बनाने का काम करता है।
बारलैप

2
@barlop: संदर्भ के लिए, यह उस समय स्वीकृत उत्तर था जिस पर टिप्पणी लिखी गई है। जब भी कोई उत्तर मैं एक टिप्पणी में संदर्भित करता हूं, तो मुझे हर बार एक अधिसूचना नहीं मिलती है।
जॉय

48

खुली फाइल :

type file.txt

नई फ़ाइल :

Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>

सामग्री संपादित करें:

notepad file.txt

प्रतिलिपि

copy file1.txt file1Copy.txt

नाम बदलें

rename file1.txt file1_rename.txt

फ़ाइल को हटाएं :

del file.txt

सीएमडी कमांड्स का अच्छा अवलोकन
कारगेयर

32

मेरी पोस्ट पर टिप्पणियों को पढ़ना, मुझे मानना ​​होगा कि मैंने प्रश्न को सही नहीं पढ़ा है।

Windows कमांड-लाइन पर, fsutil का उपयोग करने का एक तरीका होगा :

fsutil file createnew <filename> <size>

एक उदाहरण:

fsutil file createnew myEmptyFile.txt 0

नीचे * निक्स कमांड-लाइन के लिए है।

touch filename

यह कमांड किसी फ़ाइल की आपकी संशोधित तिथि को बदल देती है या यदि फ़ाइल नहीं मिली है तो इसे बनाता है।


दुर्भाग्य से, प्रश्न विशेष रूप से बताता है, "साइगविन से टच कमांड के बिना।"
क्विड

3
टच कमांड के गैर- सिगविन कार्यान्वयन मौजूद हैं: unxutils.sourceforge.net अच्छा है।
ग्रेग हेवगिल

* Nix में, मैं व्यक्तिगत रूप से एक साधारण से आंशिक हूँ > filename, जिसका उपयोग किसी मौजूदा फ़ाइल को अलग करने के लिए भी किया जा सकता है।
फ्रैंक किसान

fsutilप्रशासनिक विशेषाधिकार चाहिए। बस एक खाली फ़ाइल बनाने के लिए पूछना थोड़ा है ...
जॉय

@Joey खाली फ़ाइल बनाने के लिए ये सभी कमांड थोड़े बहुत नहीं हैं? यहां तक ​​कि 120 अंक के साथ नीचे एक बहुत कुछ है जब आप को छूने के लिए उपयोग किया जाता है।
जॉनी

29
echo "" > filename

मेरा मानना ​​है कि यह विंडोज / डॉस पर काम करता है, लेकिन मेरे अंतिम हाथों का अनुभव या तो काफी समय पहले का है। मैं एक तथ्य के लिए जानता हूं कि यह मूल रूप से किसी भी POSIX अनुरूप ओएस पर काम करता है ।


2
जाहिर है, VonC का जवाब मेरी तुलना में बेहतर है, इसलिए कृपया इसे बदले।
क्रि।

3
दुर्भाग्य से: गूंज "" दोहरे उद्धरण चिह्नों को प्रदर्शित करता है और जब यह स्ट्रीम पर पुनर्निर्देशित किया जाता है तो वे फ़ाइल में लिखे जाते हैं। ऐसा ही होता है: echo> filename क्योंकि यह लिखता है कि ECHO फ़ाइल के साथ ही चालू / बंद है।
ग्रेंडलर

शायद आप फ़ाइल को बनाने से पहले उस रेखा को "@echo ऑफ" कर सकते हैं ताकि इसे दरकिनार किया जा सके?
क्रिश

27
call>file.txt

यह सबसे साफ तरीका है जो मुझे पता है।


इसके बारे में ऐसा क्या है जो "साफ" है?
ग्रीनएसजेड

4
यह फ़ाइल को याद रखने और उपयोग करने में आसान होने के बावजूद कुछ भी नहीं करता है।
नेफी 12

यह सबसे सरल समाधान था जो काम करता है, और याद रखने में आसान है।
नृसिंह

12
cd > filename.cfg 

C: / Program Files में एक फ़ाइल बनाते समय काम किया गया जहाँ आपके पास सीधे फाइल बनाने की पहुँच नहीं है।


11

आप अपना स्वयं का स्पर्श लिख सकते हैं।

//touch.cpp
#include <fstream>
#include <iostream>

int main(int argc, char ** argv;)
{
  if(argc !=2)
  {
    std::cerr << "Must supply a filename as argument" << endl;
    return 1;
  }
  std::ofstream foo(argv[1]);
  foo.close();
  return 0;
}

6

copy con SomeFile.txt Enter

Ctrl-Z Enter


मैंने सवाल उठाया कि कमांड स्क्रिप्ट से चलेगी, लेकिन दुर्भाग्य से कोई भी कीबोर्ड इंटरेक्शन काम नहीं करता है। वैसे भी धन्यवाद।
ग्रेंडलर

6

फिर भी एक अन्य विधि जो शून्य बाइट फ़ाइल बनाती है:

break > "file.txt"

6

तो आप एक खाली फ़ाइल बना सकते हैं

'' > newfile.txt

निर्देशिका पर नेविगेट करें और उपरोक्त आदेश को PowerShell विंडो में टाइप करें।

ध्यान दें कि यह विंडोज़ कमांड प्रॉम्प्ट पर काम नहीं करेगा।


5

इसे आज़माएं: abc > myFile.txt सबसे पहले, यह myFile.txtवर्तमान वर्किंग डायरेक्टरी में (कमांड प्रॉम्प्ट में) नाम से एक फाइल बनाएगा । फिर वह कमांड चलाएगा abcजो कि एक मान्य कमांड नहीं है। इस तरह, आपने नाम के साथ एक नई खाली फ़ाइल प्राप्त कर ली है myFile.txt


2
यह बहुत गलत हो सकता है अगर abcपथ में था और अधिष्ठापन निर्देशिका को छोड़कर सभी ड्राइव को स्वरूपित करने के लिए एक सुविधा फ़ंक्शन था।
रक्तस्रावी उंगलियां

5

type nul>filename एक नई खाली फ़ाइल बनाएगा।

माफ करना, मुझे आने में देरी हुई।

अद्यतन : copy nul filenameपुनर्निर्देशन (अधिक स्पष्ट समाधान) के बिना भी काम करता है।



4

आप यह भी उपयोग कर सकते हैं:

echo. 2>foo

के लिए डिबग आउटपुट echo.लगभग निश्चित रूप से खाली होगा।


4

मैंने कई सूत्र पढ़े लेकिन यह सबसे छोटा तरीका नहीं है।

कृपया कमांड का उपयोग करें:

>copy /b NUL empty_file.txt


4

आप पुरानी कमांड का उपयोग कर सकते हैं

copy con file_name.ext

कुछ भी टाइप न करें, इसे बचाने के लिए F6 दबाएं, हालांकि यह "फाइल कॉपी" प्रिंट कर देगा, लेकिन जब आप फाइल को खोलेंगे, तो यह खाली हो जाएगा


4

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

nul> (file_name) टाइप करें। (file_type)

उदाहरण के लिए। अगर आप टेक्स्ट फाइल बनाना चाहते हैं तो

टाइप करें nul> Demo.txt

यदि आप एक जावास्क्रिप्ट फ़ाइल बनाना चाहते हैं तो

प्रकार nul> Demo.js


3

इसने मेरे लिए काम किया,

echo > file.extension

यहाँ आज मुझे एक और तरीका मिला, अन्य उत्तरों से विचार मिले लेकिन यह काम कर गया

sometext > filename.extension

उदाहरण के लिए।

xyz > emptyfile.txt  //this would create an empty zero byte text file
abc > filename.mp4   //this would create an zero byte MP4 video media file

यह कमांड प्रॉम्प्ट में एक त्रुटि संदेश दिखाएगा,

xyz आंतरिक या बाह्य कमांड, ऑपरेशनल प्रोग्राम या बैच फ़ाइल के रूप में नहीं है।

लेकिन अजीब बात मुझे मिली कि फ़ाइल निर्देशिका में बनाई जा रही है, भले ही कमांड एक मानक विंडोज़ कमांड न हो।


1
एक से अधिक "हैंडल" हैं जो कंसोल एप्लिकेशन को पढ़ / लिख सकते हैं। मानक हैं: (0) STDIN, (1) STDOUT, और (2) STDERR। मुझे विश्वास है कि आपकी चाल यहाँ काम करने का कारण है क्योंकि सभी आउटपुट त्रुटि हैंडल पर जा रहे हैं, लेकिन आप केवल फ़ाइल में STDOUT को निर्देशित कर रहे हैं। ऐसा करने का प्रयास करें: "xyz> blankfile.txt 2> & 1" को STDERR को जो कुछ भी STDOUT उपयोग कर रहा है, उसे पुनर्निर्देशित करने के लिए, जो "blankfile.txt" पर पुनर्निर्देशित होने के लिए होता है। अब आपको इस फ़ाइल के अंदर त्रुटि संदेश देखना चाहिए।
ब्रेंट रिटेनहाउस


3

विंडोज पर मैंने ऐसा करने की कोशिश की

echo off > fff1.txt

और इसने fff1.txt नाम से एक फाइल बनाई 0kb के फ़ाइल आकार के साथ

मुझे इसके अलावा कोई ऐसी कमांड नहीं मिली जो खाली फाइल बना सके।

नोट: आपको उस निर्देशिका में रहना होगा जिसे आप फ़ाइल बनाना चाहते हैं।


यदि आवश्यक हो तो फ़ाइल बनाने के बाद उस पर गूँजना न भूलें।
क्यूमास्टर

यह कमांड ENTER पर क्लिक करने के बाद cmd को जमा देता है।
कविन राजू एस

मुझे यकीन नहीं है कि ऐसा क्यों होता है, लेकिन मुझे लगता है कि उपरोक्त कमांड दर्ज करने के बाद आपको "इको ऑन" करना चाहिए।
ओंकार अग्रवाल


2

बस मैंने खिड़कियों में कोशिश की है

copy con file.txt

इसके बाद EnterKey दबाएं फिर दबाएंCtrl+Z Enter

और इसके लिए मेरे लिए काम किया।

उबंटू के लिए आमतौर पर मैं VI कमांड का उपयोग करके एक फाइल बना रहा हूं

vi file.txt

यह फाइल को खोलेगा फिर की दबाएं और ESCफिर टाइप करें : wp फिर की दबाएं enter। यह खाली डेटा के साथ एक नई फ़ाइल बनाएगा।


2
  • सामग्री के साथ एक बैट फ़ाइल बनाएँ echo '' > %1 । (फ़ाइल का नाम टच.बीएट के रूप में रखें)
  • पथ चर के लिए फ़ोल्डर जोड़ें।
  • आप फ़ाइलों को बनाने के लिए स्पर्श का उपयोग कर सकते हैं। (Ex: touch temp.txttemp.txt फ़ाइल बनाता है)

जाँच इस बारे में अधिक जानकारी के लिए लेख।


1

आज मैंने एक नई खोज की है :)

यह कमांड लाइन विंडो शीर्षक को बदल देगा, लेकिन एक खाली फ़ाइल भी बनाएगा।

title > file.txt

1

प्रवेश मोड में CMD चलाएँ और इसे टाइप करें:

NUL > file_name.extention

या आप इसे टाइप करें

echo .> file_name.extention

1

यहाँ एक और तरीका है:

rem/ > file.ext

स्लैश /अनिवार्य है; इसके बिना पुनर्निर्देशन भाग द्वारा टिप्पणी की गई थी rem


0

पहले अपनी फ़ाइल बनाएं ताकि यह मौजूद हो:

echo . > myfile.txt

फिर copyकमांड का उपयोग करके एक खाली संस्करण के साथ बनाई गई फ़ाइल को अधिलेखित करें :

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