Na komputerze z systemem Windows pojawia się ten błąd
„dotyk” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.
kiedy wykonam instrukcje, aby to zrobić:
touch index.html app.js style.css
Czy istnieje odpowiednik systemu Windows dotyczący „dotyku”? Czy muszę ręcznie tworzyć te pliki (i modyfikować je, aby zmienić znacznik czasu), aby zaimplementować tego rodzaju polecenia? To nie wydaje się bardzo ... węzłowe ...
touch
. Inna dyskusja tutaj: superuser.com/questions/10426/... a biblioteka Cygwin to wspólny zestaw narzędzi poleceń Uniksa w systemie Windows.touch
aby utworzyć pusty plik za pomocą PowerShell?Odpowiedzi:
w oknie typu cmd:
Spowoduje to utworzenie 0 bajtów w pliku twoj_plik.txt.
Innym sposobem na to jest użycie polecenia echo :
Echo. - utworzy plik z jedną pustą linią.
Zmieniano 01.01.2019:
Jeśli chcesz zachować zawartość pliku, użyj >> zamiast>
Przykład
Edytowano 2020-04-07
Możesz także użyć polecenia połączenia .
Przykład:
źródło
access denied
w konsoli. Druga opcja działa dobrze!>>
pierwszego nic nie robi, drugi dodaje wiersz na końcu pliku. Prawidłowa odpowiedź to superuser.com/questions/10426/…Windows nie zawiera natywnie
touch
polecenia.Możesz użyć dowolnej z dostępnych wersji publicznych lub możesz użyć własnej wersji. Zapisz ten kod jako
touch.cmd
i umieść go gdzieś na swojej ścieżceBędzie iterował listę argumentów i dla każdego elementu, jeśli istnieje, zaktualizuj znacznik czasu pliku, w przeciwnym razie utwórz go.
źródło
Możesz użyć tego polecenia: ECHO >> nazwa_pliku.txt
utworzy plik z danym rozszerzeniem w bieżącym folderze.
AKTUALIZACJA:
dla pustego pliku użyj: skopiuj NUL filename.txt
źródło
type NUL > filename
(tworzy plik 0 bajtów)type NUL >> filename
Odpowiedź jest błędna, działa tylko wtedy, gdy plik nie istnieje. Jeśli plik istnieje, użycie pierwszego nic nie robi, drugi dodaje wiersz na końcu pliku.
Poprawna odpowiedź to:
Znalazłem to tutaj: /superuser/10426/windows-equivalent-of-the-linux-command-touch/764721#764721
źródło
Dziwi mnie, jak wiele odpowiedzi tutaj jest po prostu błędnych . Echo niczego do pliku wypełni plik czymś podobnym
ECHO is ON
, a próba echa$nul
do pliku dosłownie umieści$nul
go w pliku. Dodatkowo w programie PowerShell echo$null
pliku nie spowoduje utworzenia pliku 0kb, ale coś zakodowanego jakoUCS-2 LE BOM
, co może być nieporządne, jeśli trzeba się upewnić, że pliki nie mają znaku kolejności bajtów.Po przetestowaniu wszystkich odpowiedzi tutaj i powołaniu się na podobne, mogę zagwarantować, że będą one działać dla powłoki konsoli. Po prostu zmień
FileName.FileExtension
pełną lub względną ścieżkę pliku, który chcesztouch
; dzięki Keith Russell zaCOPY NUL FILE.EXT
aktualizację:CMD z aktualizacjami sygnatur czasowych
copy NUL FileName.FileExtension
Spowoduje to utworzenie nowego pliku o nazwie niezależnie od tego, który umieścisz zamiast o
FileName.FileExtension
rozmiarze 0 bajtów. Jeśli plik już istnieje, po prostu skopiuje się w miejscu, aby zaktualizować znacznik czasu. Powiedziałbym, że jest to bardziej obejście niż funkcjonalność 1: 1,touch
ale nie znam żadnych wbudowanych narzędzi dla CMD, które mogłyby dokonać aktualizacji sygnatury czasowej pliku bez zmiany jakiejkolwiek innej jego zawartości.CMD bez aktualizacji sygnatury czasowej
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Powershell z aktualizacjami znaczników czasu
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
Tak, będzie działać w konsoli jako jednowarstwowy; nie ma potrzeby umieszczania go w pliku skryptu PowerShell.
PowerShell bez aktualizacji znaczników czasu
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
źródło
fsutil file CreateNew FileName.FileExtension 0
gocopy NUL Filename.FileExtension
, ponieważ ten drugi jest krótszy i robi to samo.copy
go,fsutil
ale minęło już trochę czasu ... Jestem pewien, że tak właśnie dowiedziałem się ofsutil
haha! Spróbuję dowiedzieć się, dlaczego ...W wierszu polecenia użyj następującego polecenia:
Informacje o parametrach w następujący sposób:
fsutil - Narzędzie systemu plików (uruchomiony plik wykonywalny)
plik - wyzwala akcję pliku
createnew - akcja do wykonania (utwórz nowy plik)
nazwa_pliku - byłaby dosłownie nazwą pliku
wymagany rozmiar - przydzieli rozmiar pliku w bajtach w utworzonym pliku
źródło
NULL
s ... dziwne ... więc po prostu użyj 0 ... generuje błąd, jeśli pominiesz wymagany rozmiar .W systemie Windows Power Shell można użyć następującego polecenia:
lub
źródło
'New-Item' is not recognized as an internal or external command
Możesz replikować funkcjonalność dotyku za pomocą następującego polecenia:
Powoduje to próbę uruchomienia programu o nazwie
$
, ale jeśli$
nie istnieje (lub nie jest plikiem wykonywalnym, który generuje dane wyjściowe), wówczas dane wyjściowe nie są przez niego wytwarzane. Zasadniczo jest to włamanie do funkcjonalności, jednak pojawi się następujący komunikat o błędzie:Jeśli nie chcesz wyświetlać komunikatu o błędzie, możesz wykonać jedną z dwóch czynności:
Lub:
Do
type
prób polecenie, aby wyświetlić zawartość nul, który nic nie robi, ale zwraca EOF (koniec pliku) podczas odczytu.2>nul
wysyła wyjście błędów (wyjście 2) do nul (co ignoruje wszystkie dane wejściowe po zapisaniu). Oczywiście drugie polecenie (z2>nul
) zostaje zwolnione przez totype
polecenie, ponieważ jest szybsze do pisania. Ale przynajmniej masz teraz opcję i wiedzę.źródło
%ERRORLEVEL%
zawsze ustawia się na niezerowe. Możesz rozwiązać ten problem, dodając noop|| cd.
, ale to zawsze ustawia błąd na 0, co może nie być tym, czego chcesz, jeśli „dotyk” nie powiedzie się.Żadne polecenie - ani
type
aniecho
- nie jest konieczne do emulacji polecenia „dotykowego” w systemach Unix / Mac OS X w terminalu Windows PowerShell. Po prostu użyj następującego skrótu:Spowoduje to utworzenie pustego pliku o nazwie „nazwa pliku” w bieżącej lokalizacji. Użyj dowolnego potrzebnego rozszerzenia nazwy pliku, np. „.Txt”.
Źródło: /superuser/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (patrz komentarze)
źródło
echo
$null > filename
wysyła tę pustą wyjście do pliku (jeśli złapiesz o co mi chodzi).echo
W standardowym terminalu wiersza poleceń (cmd), czego potrzebujeszecho
. Przepraszam za zamieszanie.Możesz także użyć copy con [nazwa pliku] w oknie poleceń systemu Windows (cmd.exe):
Spowoduje to utworzenie pliku o nazwie
yourfile.txt
w katalogu lokalnym.źródło
jak wspomniano
może to być dowolny plik z dowolnym rozszerzeniem
spowoduje to otwarcie pliku w edytorze notatnika
źródło
Używam
cmder
(emulator wiersza poleceń)Umożliwia uruchamianie wszystkich poleceń systemu Linux na komputerze z systemem Windows.
Można go pobrać ze strony https://cmder.net/
naprawdę to lubie
źródło
Zakładając, że plik istnieje i wystarczy zaktualizować znacznik czasu.
źródło
Z terminalu Visual Code Studio na Windows 10, to działało dla mnie, aby utworzyć nowy plik:
źródło
Jeśli masz Cygwin zainstalowany na komputerze, możesz po prostu użyć dostarczonego pliku wykonywalnego dla dotyku (również za pomocą wiersza poleceń systemu Windows):
źródło
Łatwo, przykład z plikiem txt
źródło
$null
do pliku.Tak, możesz użyć Node dla Touch Po prostu używam tego i działa dobrze w Windows Cmd lub gitbash
źródło
[cmd]
, co oznacza, że OP chce odpowiedzi, która działa od razu po wyjęciu z pudełka dla CMD, co oznacza, że nie ma narzędzi wiersza poleceń, które nie są zapakowane w domyślną instalację systemu Windows. Wyklucza to praktycznie wszystkie języki skryptowe, nawet wbudowane języki skryptowe Windows, takie jak CScript, WScript i PowerShell. Nie chodzi o to, że działa w środowisku CMD env, ale że jest to możliwe dla każdego, kto ma dostęp do CMD, nie uwzględniając problemów z uprawnieniami.