विंडोज 'टच' के बराबर (यानी एक index.html बनाने के लिए नोड .js तरीका)


195

एक विंडोज़ मशीन पर मुझे यह त्रुटि मिलती है

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

जब मैं करने के लिए निर्देशों का पालन करता हूं:

touch index.html app.js style.css

क्या 'टच ’का उपयोग करने के बराबर खिड़कियां हैं? क्या मुझे इस प्रकार की कमांड को लागू करने के लिए इन फ़ाइलों को हाथ से बनाने (और टाइमस्टैम्प को बदलने के लिए संशोधित करना) की आवश्यकता है? यह बहुत अच्छा नहीं लगता है ... नोड- ish ...


5
Google की एक सरल खोज आपको बहुत सारे विंडोज़ कार्यान्वयन दिखाती है touch। अन्य चर्चा यहां: superuser.com/questions/10426/… और Cygwin लाइब्रेरी विंडोज के लिए यूनिक्स कमांड का एक सामान्य टूलसेट है।
jfriend00

4
इस प्रश्न का संभावित डुप्लिकेट: stackoverflow.com/questions/26343974/…
प्लास्टिक स्टर्जन


1
यदि आप PowerShell का उपयोग करते समय यहां उतरे हैं तो कृपया रघुवीर के उत्तर पर सीधे जाएं।
RBT

जवाबों:


279

cmd विंडो प्रकार में:

type nul > your_file.txt

यह आपकी_file.txt फ़ाइल में 0 बाइट्स बनाएगा।

इसे करने का दूसरा तरीका इको कमांड का उपयोग करना है :

echo.> your_file.txt

गूंज। - इसमें एक खाली लाइन के साथ एक फाइल बनाएंगे।

2019-04-01 को संपादित:

अगर आपको फ़ाइल उपयोग की सामग्री को संरक्षित करने की आवश्यकता है>> के बजाय>

>   Creates a new file
>>  Preserves content of the file

उदाहरण

type nul >> your_file.txt

2020-04-07 को संपादित किया गया

आप कॉल कमांड का भी उपयोग कर सकते हैं ।

मूल बैच प्रोग्राम को रोकने के बिना एक बैच प्रोग्राम को दूसरे से कॉल करता है। कॉल कमांड कॉल को लक्ष्य के रूप में स्वीकार करता है।

उदाहरण:

call >> your_file.txt

2
विंडोज 7 पर पहला विकल्प एक डरावना संवाद पैदा करता है, और फिर आप access deniedकंसोल में देखते हैं । दूसरा विकल्प ठीक काम करता है!
डीकोड

13
उत्तर गलत है, यह केवल तभी काम करता है जब फ़ाइल मौजूद नहीं है। यदि फ़ाइल मौजूद है, >>तो पहले का उपयोग करने से कुछ नहीं होता है, दूसरा फ़ाइल के अंत में एक पंक्ति जोड़ता है। सही उत्तर सुपरयूजर है।
विजय १०/२६/२/१०

3
@stenci - मैंने इसे एक गैर-मौजूद फ़ाइल पर आज़माया और यह ठीक काम किया। यह फ़ाइल ठीक बनाया। शायद आपके पास व्यवस्थापक अधिकारों की कमी है?
dcp

2
@stenci कि सुपरसुअर लिंक बढ़िया है। आपको इसे उत्तर के रूप में पोस्ट करना चाहिए।
डेनिस स्किडमोर

@DeniseSkidmore धन्यवाद, मैंने जवाब जोड़ा। यह गहराई से नीचे है और लोग मेरे उत्तर की तुलना में इस उत्तर पर मेरी टिप्पणी को अधिक पढ़ेंगे, लेकिन अब यह वहां है।
स्टेंकी

67

विंडोज में मूल रूप से एक touchकमांड शामिल नहीं है ।

आप किसी भी उपलब्ध सार्वजनिक संस्करण का उपयोग कर सकते हैं या अपने स्वयं के संस्करण का उपयोग कर सकते हैं। इस कोड को सहेजें touch.cmdऔर इसे अपने पथ में कहीं रखें

@echo off
    setlocal enableextensions disabledelayedexpansion

    (for %%a in (%*) do if exist "%%~a" (
        pushd "%%~dpa" && ( copy /b "%%~nxa"+,, & popd )
    ) else (
        type nul > "%%~fa"
    )) >nul 2>&1

यह तर्क सूची पर पुनरावृत्ति करेगा, और यदि यह मौजूद है, तो प्रत्येक तत्व के लिए, फ़ाइल टाइमस्टैम्प को अपडेट करें, अन्यथा, इसे बनाएं।


यह सबसे अच्छा है, बिल्कुल उम्मीद के मुताबिक काम करता है ... यहां अन्य समाधान काम करते हैं लेकिन चेतावनी / त्रुटि ग्रंथों को छोड़ दें, तो आईडीके अगर मेरे लिए अनन्य है।
शकील

35

आप इस कमांड का उपयोग कर सकते हैं: ECHO >> filename.txt

यह वर्तमान फ़ोल्डर में दिए गए एक्सटेंशन के साथ एक फ़ाइल बनाएगा।

अपडेट करें:

एक खाली फ़ाइल उपयोग के लिए: NUL फ़ाइल नाम की प्रतिलिपि बनाएँ


8
इससे भी बेहतर type NUL > filename(0 बाइट्स फ़ाइल बनाता है)
krzemian

23
स्पर्श की तरह, यह मौजूद होने पर फ़ाइल को अधिलेखित नहीं करेगा:type NUL >> filename
हेनन

3
यह "ECHO चालू है" जोड़ने का एक शानदार तरीका है। आपकी फ़ाइल पर।
रिपवैलन

4
यह मौजूदा फ़ाइलों के टाइमस्टैम्प को अपडेट नहीं करता है।
डेनिस स्किडमोर

1
मुझे लगता है कि डेनिस स्किडमोर ओपी नहीं, बल्कि हेनन को जवाब दे रहे हैं। (मैं उसकी टिप्पणी दूसरी।)
कीथ रसेल

28

उत्तर गलत है, यह केवल तभी काम करता है जब फ़ाइल मौजूद नहीं है। यदि फ़ाइल मौजूद है, तो पहले का उपयोग करने से कुछ नहीं होता है, दूसरा फ़ाइल के अंत में एक पंक्ति जोड़ता है।

सही जवाब है:

copy /b filename.ext +,,

मैंने इसे यहाँ पाया: /superuser/10426/windows-equivalent-of-the-linux-command-touch/764721#764721


1
जब फ़ाइल मौजूद नहीं है तो यह उत्तर काम नहीं करता है। (सीएमडी एक त्रुटि पैदा करता है।)
कीथ रसेल

15

मुझे आश्चर्य है कि यहाँ कितने उत्तर गलत हैं । एक फ़ाइल में कुछ भी नहीं ECHO is ONगूंजने से फ़ाइल कुछ इस तरह भर जाएगी , और $nulएक फ़ाइल में गूंजने की कोशिश करने से फ़ाइल में सचमुच जगह होगी $nul। इसके अतिरिक्त PowerShell के लिए, $nullकिसी फ़ाइल में गूँजने से वास्तव में 0kb फ़ाइल नहीं बनेगी, लेकिन कुछ इस तरह से एन्कोड हो जाती है UCS-2 LE BOM, जो गड़बड़ हो सकती है यदि आपको यह सुनिश्चित करने की ज़रूरत है कि आपकी फ़ाइलों में बाइट-ऑर्डर मार्क नहीं है।

यहां सभी उत्तरों का परीक्षण करने और कुछ समानों को संदर्भित करने के बाद, मैं गारंटी दे सकता हूं कि ये कंसोल शेल के अनुसार काम करेंगे। जिस FileName.FileExtensionफ़ाइल को आप चाहते हैं touch, उसके पूर्ण या सापेक्ष-पथ में परिवर्तन करें ; अद्यतन के लिए कीथ रसेल को धन्यवाद COPY NUL FILE.EXT:

CMD w / टाइमस्टैम्प अपडेट

copy NUL FileName.FileExtension

यह FileName.FileExtension0 बाइट्स के आकार के बजाय आपके द्वारा रखी गई एक नई फ़ाइल बनाएगा । यदि फ़ाइल पहले से मौजूद है, तो यह टाइमस्टैम्प को अपडेट करने के लिए मूल रूप से अपने आप में कॉपी हो जाएगी। मैं कहता हूं कि यह 1: 1 की कार्यक्षमता से अधिक वर्कअराउंड है, touchलेकिन मुझे सीएमडी के लिए किसी भी अंतर्निहित टूल के बारे में नहीं पता है जो किसी भी अन्य सामग्री को बदलने के बिना किसी फ़ाइल के टाइमस्टैम्प को अद्यतन करने को पूरा कर सकता है।

सीएमडी डब्ल्यू / टाइमस्टैम्प अपडेट

if not exist FileName.FileExtension copy NUL FileName.FileExtension

पॉवर्सशेल w / टाइमस्टैम्प अपडेट्स

if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}

हां, यह वन-लाइनर के रूप में कंसोल में काम करेगा; PowerShell स्क्रिप्ट फ़ाइल में इसे रखने की कोई आवश्यकता नहीं है।

PowerShell w / टाइमस्टैम्प अपडेट

if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}


1
उस स्थिति के बारे में क्या जहां फ़ाइल मौजूद है और आप मौजूदा समय में इसके संशोधन टाइमस्टैम्प को अपडेट करना चाहते हैं? मैं नहीं देखता कि ये उदाहरण कैसे प्राप्त करते हैं।
RoG

2
शानदार अवलोकन, RoG! मैंने इसका जवाब देने के लिए अद्यतन किया है :)
kayleeFrye_onDeck

यह सबसे अच्छा जवाब है। हालांकि, मैं अभी भी इसे बदल कर में सुधार चाहते हैं fsutil file CreateNew FileName.FileExtension 0के द्वारा copy NUL Filename.FileExtension, के बाद से बाद में कम है और एक ही बात करता है।
कीथ रसेल

@KeithRussell IIRC एक विशेष कारण मैं का उपयोग नहीं किया था copyसे अधिक fsutilहै लेकिन यह एक हो गया है, जबकि ... मैं बहुत यकीन है कि कैसे मैं यह भी के बारे में सीखा हूँ fsutilhaha! मैं यह पता लगाने की कोशिश करूंगा कि क्यों ...
kayleeFrye_onDeck

1
यहां तक ​​कि अगर वे एक ही व्यवहार करते हैं, तो मुझे लगता है कि यह मेरे लिए समय से पहले कहना बेहतर है, गति-परीक्षण के बिना।
कीथ रसेल

14

अपनी कमांड लाइन पर निम्न कमांड का उपयोग करें:

fsutil file createnew filename  requiredSize

निम्नलिखित के रूप में पैरामीटर जानकारी:

fsutil - फ़ाइल सिस्टम उपयोगिता (निष्पादन योग्य जो आप चला रहे हैं)

फ़ाइल - एक फ़ाइल कार्रवाई चलाता है

createnew - प्रदर्शन करने की क्रिया (एक नई फ़ाइल बनाएं)

फ़ाइल नाम - वस्तुतः फ़ाइल का नाम होगा

आवश्यक - बनाई गई फ़ाइल में बाइट्स में एक फ़ाइल आकार आवंटित करेगा


2
इसके लिए कुछ स्पष्टीकरण की आवश्यकता होती है, जिसे एक सभ्य उत्तर माना जाता है। यह स्पष्ट नहीं है कि इन पाँच शब्दों का क्या अर्थ है।
jfriend00

1
मेरे लिए काम किया ... जरूरी चीज अजीब है, हालांकि ... कमांड सिर्फ आपकी नई फाइल को हजारों NULLएस के साथ भरता है ... अजीब ... तो बस 0 का उपयोग करें ... यदि आप जरूरी छोड़ें तो एक त्रुटि उत्पन्न करता है .. ।
dsdsdsdsd

1
इस कम्यून को व्यवस्थापक निजीकरण की आवश्यकता है :(
ADJ

1
टच मौजूदा फ़ाइलों पर टाइमस्टैम्प को भी अपडेट करता है, न केवल नई फाइलें बनाता है।
डेनिस स्किडमोर

1
स्पर्श इसे करने का एक त्वरित तरीका है, इसके सबसे करीब गूंज या प्रकार होगा, मुझे लगता है, हालांकि यह स्क्रिप्टिंग के लिए एक बहुत ही आसान उपकरण है और डब्ल्यूएस 16 में व्यापक रूप से उपयोग किया जाता है, अंगूठे! docs.microsoft.com/en-us/windows-server/administration/…
एलन

10

विंडोज़ पावर शेल पर, आप निम्न कमांड का उपयोग कर सकते हैं:

New-Item <filename.extension>

या

New-Item <filename.extension> -type file

नोट: नई मद इसकी उर्फ साथ बदला जा सकता नी


1
यह आज के विंडोज दुनिया में वास्तविक जवाब है जहां पावरशेल डिफ़ॉल्ट कमांड शेल प्रोग्राम है।
RBT

सुनिश्चित नहीं है कि आप किस विंडोज का जिक्र कर रहे हैं, मैंने अभी एक नया विंडोज 10 स्थापित किया है और पॉवर्सशेल निश्चित रूप से डिफ़ॉल्ट शेल नहीं है। 'New-Item' is not recognized as an internal or external command
user5359531

8

आप निम्न कमांड के साथ स्पर्श की कार्यक्षमता को दोहरा सकते हैं:

$>>filename

यह क्या करता है नामक प्रोग्राम को निष्पादित करने का प्रयास करता है $, लेकिन यदि $मौजूद नहीं है (या एक निष्पादन योग्य नहीं है जो आउटपुट का उत्पादन करता है) तो इसके द्वारा कोई आउटपुट उत्पन्न नहीं होता है। यह अनिवार्य रूप से कार्यक्षमता पर एक हैक है, हालांकि आपको निम्न त्रुटि संदेश मिलेगा:

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

यदि आप त्रुटि संदेश नहीं चाहते हैं तो आप दो चीजों में से एक कर सकते हैं:

type nul >> filename

या:

$>>filename 2>nul

typeआदेश की कोशिश करता नुल, जब पढ़ा जो कुछ भी नहीं लेकिन रिटर्न एक EOF (फ़ाइल के अंत में) करता है की सामग्री प्रदर्शित करने।

2>nulत्रुटि-आउटपुट (आउटपुट 2) को nul को भेजता है (जो लिखे जाने पर सभी इनपुट को अनदेखा करता है)। स्पष्ट रूप से दूसरी कमांड (के साथ 2>nul) typeकमांड द्वारा अतिरेक से बनाई गई है क्योंकि यह टाइप करने के लिए तेज है। लेकिन कम से कम अब आपके पास विकल्प और ज्ञान है।


यह बहुत अच्छा है, लेकिन यह %ERRORLEVEL%हमेशा गैर-शून्य पर सेट होता है। आप एक समस्या को नूप अप करके ठीक कर सकते हैं || cd., लेकिन यह हमेशा 0 पर त्रुटि सेट करता है, जो "टच" विफल होने पर आप जो चाहते हैं वह नहीं हो सकता है।
कीथ रसेल

5

विंडोज पॉवरशेल टर्मिनल में यूनिक्स / मैक ओएस एक्स के 'टच' कमांड का अनुकरण करने के लिए कोई कमांड - न तो typeऔर न ही echoआवश्यक है। बस निम्नलिखित आशुलिपि का उपयोग करें:

$null > filename

यह आपके वर्तमान स्थान पर 'फ़ाइलनाम' नामक एक खाली फ़ाइल बनाएगा। किसी भी फ़ाइल नाम एक्सटेंशन का उपयोग करें जिसकी आपको आवश्यकता हो सकती है, जैसे '.txt'।

स्रोत: /superuser/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (टिप्पणियां देखें)


1
ऐसा लगता है कि आप चूक गएecho
सबितपॉकर

Windows cmd में @sabithpocker, $ null मौजूद नहीं है, और चूंकि यह मौजूद नहीं है इसलिए यह कोई आउटपुट नहीं देता है। आप $null > filenameउस खाली आउटपुट को फ़ाइलनाम में भेजते हैं (यदि आप मेरा बहाव पकड़ते हैं)।
क्लेडॉन एलेने

1
@sabithpocker विंडोज पॉवर्सशेल में यह बिना काम करता echoहै मानक कमांड लाइन टर्मिनल (cmd) में आपकी आवश्यकता है echo। गलतफहमी के लिए खेद है।
ओलिवर शेफेल्ड

@OliverSchafeld और Keldon स्पष्टीकरण के लिए धन्यवाद।
सबितपॉकर

1
यह फ़ाइल में BOM जोड़ता है।
kayleeFrye_onDeck

3

आप विंडोज कमांड विंडो (cmd.exe) में भी कॉपी कोन [फाइलनेम] का उपयोग कर सकते हैं :

C:\copy con yourfile.txt [enter]
C:\CTRL + Z [enter] //hold CTRL key & press "Z" then press Enter key.
^Z
    1 Files Copied.

यह yourfile.txtस्थानीय निर्देशिका में नाम से एक फ़ाइल बनाएगा ।


3

उल्लेखानुसार

echo >> index.html

यह किसी भी एक्सटेंशन के साथ कोई भी फाइल हो सकती है

notepad index.html

यह आपकी फाइल को नोटपैड एडिटर में खोलेगा


3

मैं उपयोग करता हूं cmder(कमांड लाइन एमुलेटर)

यह आपको विंडोज मशीन के अंदर सभी लिनक्स कमांड चलाने की अनुमति देता है।

इसे https://cmder.net/ से डाउनलोड किया जा सकता है

मुझे वास्तव में यह पसंद है


1
जब मैं Win10 में Cmder खोलने की कोशिश करता हूं तो "अज्ञात प्रकाशक" चेतावनी के साथ क्या हो रहा है? ओह।
क्रिस

2

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

type test.c > test.c.bkp && type test.c.bkp > test.c && del test.c.bkp

2

विंडोज 10 पर विजुअल कोड स्टूडियो के टर्मिनल से, यह वही है जिसने मेरे लिए एक नई फ़ाइल बनाने के लिए काम किया है:

type > hello.js
echo > orange.js
ni > peach.js

1

यदि आपके पास अपने पीसी में Cygwin स्थापित है, तो आप केवल स्पर्श के लिए आपूर्ति की गई निष्पादन योग्य का उपयोग कर सकते हैं (विंडोज़ कमांड प्रॉम्प्ट के माध्यम से):

C:\cygwin64\bin\touch.exe <file_path>


-1

हाँ, आप टच के लिए नोड का उपयोग कर सकते हैं मैं बस इसका उपयोग करता हूं और इसके सभी काम विंडोज़ सीएमडी या गिटबैश में ठीक है

यहां छवि विवरण दर्ज करें


मैंने इसे कम नहीं किया, लेकिन मैं समझाता हूँ कि यह शायद क्यों था। इस प्रश्न के साथ टैग किया गया था [cmd], और इसका अर्थ है कि ओपी सीएमडी के लिए आउट-ऑफ-द-बॉक्स काम करना चाहता है, जिसका अर्थ है कोई कमांड-लाइन उपयोगिताओं जो डिफ़ॉल्ट विंडोज इंस्टॉल के साथ पैक नहीं की गई हैं। यह लगभग सभी स्क्रिप्टिंग भाषाओं को बाहर कर देगा, यहां तक ​​कि अंतर्निहित विंडोज़ स्क्रिप्टिंग भाषाओं जैसे CScript, WScript और PowerShell। मुद्दा यह नहीं है कि यह सीएमडी एनवी में काम करता है, बल्कि यह कि सीएमडी के उपयोग के लिए किसी के लिए भी संभव है, न कि अनुमतियों के मुद्दों सहित।
kayleeFrye_onDeck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.