2015-05-03 7 views
47

auf einem Windows-Rechner (dh die node.js Art und Weise eine index.html zu erstellen) ich diesen FehlerWindows-Äquivalent von 'touch'

'touch' is not recognized as an internal or external command, operable program or batch file. 

, wenn ich die instructions folgen zu tun:

touch index.html app.js style.css 

Gibt es ein Windows-Äquivalent zur Verwendung von 'Touch'? Muss ich diese Dateien manuell erstellen (und sie ändern, um den Zeitstempel zu ändern), um diese Art von Befehl zu implementieren? Das scheint nicht sehr ... node-ish ...

+2

A [einfache Google-Suche] (https://www.google.com/webhp?hl=en#hl=en&q=touch+unix+program+for + Windows) zeigt Ihnen viele Windows-Implementierungen von 'touch'. Andere Diskussion hier: http://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch und die [Cygwin-Bibliothek] (https://www.cygwin.com/) ist eine gemeinsame Toolset von Unix-Befehlen unter Windows. – jfriend00

+2

Mögliche Duplikate dieser Frage: http://stackoverflow.com/questions/26343974/create-file-with-command-line-in-node –

+2

Mögliche Duplikate von [Wie berühre ich eine Datei mit Standard-Windows-Befehlen?] (http://stackoverflow.com/questions/7249233/how-doi-i-touch-a-file-withstandard-windows-commands) –

Antwort

4

den folgenden Befehl verwenden auf der Befehlszeile:

fsutil file createnew filename requiredSize 

Die Parameter info wie folgt:

fsutil - Dateisystem Dienstprogramm (die ausführbare Sie ausgeführt werden)

Datei - löst eine Datei Aktion

createnew - die Aktion auszuführen (erstellen Sie eine neue Datei)

Dateiname - wäre buchstäblich der Name der Datei

RequiredSize - würde eine Dateigröße in Bytes in der erstellten Datei

+1

Einige Erklärung ist erforderlich, damit dies als eine anständige Antwort angesehen werden kann. Es ist nicht klar, was diese fünf Wörter bedeuten. – jfriend00

+0

Menschen mögen diese Antwort vielleicht nicht, aber so erstellen Sie eine Datei in Windows.echo ist auch möglich - aber das ist gleichbedeutend mit touch –

+0

für mich gearbeitet ... die requiredSize Sache ist seltsam, aber ... der Befehl füllt nur Ihre neue Datei mit Tausenden von 'NULL's ... seltsam ... so verwenden Sie einfach 0 ... generiert einen Fehler, wenn Sie die erforderliche Größe überspringen ... – dsdsdsdsd

30

von Windows nicht nativ einen touch umfassen Befehl zuordnet.

Sie können eine der verfügbaren öffentlichen Versionen verwenden oder eine eigene Version verwenden. Speichern Sie diesen Code als touch.cmd und legen Sie sie irgendwo in Ihrem Pfad

@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 

Es wird iterieren es Argumentliste, und für jedes Element, wenn es vorhanden ist, aktualisieren Sie die Datei Zeitstempel, sonst, erstellen Sie es.

+0

genial ... !! wirklich geliebt es..danke mann – Moshiour

+0

Das ist toll, danke! –

16

können Sie diesen Befehl verwenden: ECHO >> filename.txt

wird es eine Datei mit der angegebenen Erweiterung im aktuellen Ordner erstellen.

UPDATE:

für eine leere Datei: Kopie NUL filename.txt

+5

Noch besser 'type NUL> filename' (erstellt eine 0-Byte-Datei) – krzemian

+9

Wie Touch, überschreibt dies die Datei nicht, wenn sie existiert:' type NUL >> Dateiname' – henon

+0

Dies ist eine großartige Möglichkeit, "ECHO is on." Datei – ripvlan

95

in cmd Fenstertyp:

type nul > your_file.txt 

Dies wird 0 Byte erstellen your_file.txt Datei .

Eine weitere Möglichkeit, es mit echo Befehl zu tun, ist

echo.>your_file.txt 

Echo. - erstellt Datei mit einer leeren Zeile darin.

+12

Verwenden Sie 'type nul >> your_file.txt', um den Inhalt der Datei beizubehalten, wenn sie bereits vorhanden ist, genau wie' touch' (neu formatieren [hennons Kommentar] (http://stackoverflow.com/questions/30011267/windows) -Äquivalent-von-Touch-i -e-the-node-js-weg-zu-erstellen-ein-index-html # comment63584200_35588789) für die Sichtbarkeit). – anishpatel

+1

auf Windows 7 die erste Option erzeugt einen unheimlichen Dialog, und dann sehen Sie 'Zugriff verweigert 'in der Konsole. Die zweite Option funktioniert gut! – Decoded

+0

Die Antwort ist falsch, sie funktioniert nur, wenn die Datei nicht existiert. Wenn die Datei vorhanden ist, wird mit ">>" die erste nicht ausgeführt, die zweite fügt am Ende der Datei eine Zeile hinzu. Die richtige Antwort ist https://superuser.com/questions/10426/windows-equalival-of-the-linux-command-touch/764721#764721 – stenci

2

Sie können auch copy con [filename] in einem Windows-Befehlsfenster (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. 

Dies wird eine Datei mit dem Namen yourfile.txt im lokalen Verzeichnis erstellen.

5

Kein Befehl - weder type noch echo - notwendig ist, Unix/der Mac OS X 'touch' Befehl in einem Windows Powershell-Terminal zu emulieren. Verwenden Sie einfach die folgende Kurzschrift:

$null > filename 

Dies wird eine leere Datei mit dem Namen "Dateiname" an Ihrem aktuellen Speicherort erstellen. Verwenden Sie eine beliebige Dateinamenerweiterung, die Sie möglicherweise benötigen, z. '.txt'.

Quelle: https://superuser.com/questions/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (siehe Kommentare)

+0

'$ null>' ist die Shell und der Befehl ist nur 'filename'? – sabithpocker

+0

es sieht aus wie Sie verpasst 'echo' – sabithpocker

+0

@sabithpocker in Windows cmd, $ null existiert nicht, und da es nicht existiert, erzeugt es keine Ausgabe. Sie '$ null> Dateiname' sendet diese leere Ausgabe an _filename_ (wenn Sie meinen Drift fangen). –

1

Sie können die Funktionalität der Berührung mit dem folgenden Befehl wiederholen:

$>>filename 

Was dies bedeutet Versuche ist ein Programm namens $, auszuführen, aber wenn $ tut nicht vorhanden (oder ist keine ausführbare Datei, die die Ausgabe erzeugt), dann wird von ihr keine Ausgabe erzeugt. Es ist im Wesentlichen ein Hack auf die Funktionalität, jedoch wird die folgende Fehlermeldung erhalten:

‚$‘ nicht als interner oder externer Befehl erkannt wird, bedienbare Programm oder Batch-Datei.

Wenn Sie nicht die Fehlermeldung möchten, dann können Sie tun, eines von zwei Dingen:

type nul >> filename 

Oder:

$>>filename 2>nul 

Die type Befehl versucht, den Inhalt von nul anzuzeigen , die nur ein EOF (Dateiende) zurückgibt, wenn sie gelesen wird.

2>nul sendet error-output (output 2) an nul (ignoriert alle Eingaben beim Schreiben). Offensichtlich wird der zweite Befehl (mit 2>nul) durch den Befehl type redundant gemacht, da er schneller zu schreiben ist. Aber zumindest haben Sie jetzt die Möglichkeit und das Wissen.

0

Einfach, Beispiel mit txt-Datei

echo $null >> filename.txt