команда touch в windows
Create an empty file on the commandline in windows (like the linux touch command)
On a windows machine I get this error
‘touch’ is not recognized as an internal or external command, operable program or batch file.
I was following these instructions which seem to be linux specific, but on a standard windows commandline it does not work like this:
20 Answers 20
An easy way to replace the touch command on a windows command line like cmd would be:
This will create 0 bytes in the your_file.txt file.
This would also be a good solution to use in windows batch files.
Another way of doing it is by using the echo command:
If you need to preserve the content of the file use >> instead of >
You can also use call command.
Calls one batch program from another without stopping the parent batch program. The call command accepts labels as the target of the call.
— or even if you don’t want make it hard you can Just install Windows Subsystem for Linux (WSL). Then, type.
Quotes are not needed.
Windows does not natively include a touch command.
You can use any of the available public versions or you can use your own version. Save this code as touch.cmd and place it somewhere in your path
It will iterate over it argument list, and for each element if it exists, update the file timestamp, else, create it.
You can use this command: ECHO >> filename.txt
it will create a file with the given extension in the current folder.
UPDATE:
for an empty file use: copy NUL filename.txt
The answer is wrong, it only works when the file does not exist. If the file exists, using the first does nothing, the second adds a line at the end of the file.
The correct answer is:
On windows Power Shell, you can use the following command:
Note: New-Item can be replaced with its alias ni
After testing all the answers here and referencing some similar ones, I can guarantee these will work per console shell. Just change FileName.FileExtension to the full or relative-path of the file you want to touch ; thanks to Keith Russell for the COPY NUL FILE.EXT update:
CMD w/Timestamp Updates
copy NUL FileName.FileExtension
This will create a new file named whatever you placed instead of FileName.FileExtension with a size of 0 bytes. If the file already exists it will basically copy itself in-place to update the timestamp. I’d say this is more of a workaround than 1:1 functionality with touch but I don’t know of any built-in tools for CMD that can accomplish updating a file’s timestamp without changing any of its other content.
CMD w/out Timestamp Updates
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Powershell w/Timestamp Updates
Yes, it will work in-console as a one-liner; no requirement to place it in a PowerShell script file.
Windows-эквивалент команды Linux «Сенсорный»?
Что вы используете, когда хотите обновить поле с измененной датой файла в Windows?
Если кто-нибудь знает, как я могу сделать это через C ++, C #, WSH или что-то подобное, ну и хорошо, иначе я бы подумал, что все остальное рассматривается в связанном вопросе.
Если вы хотите прикоснуться к отметке даты файла с помощью Windows, используйте следующую команду в командной строке:
(где имя filename.ext вашего файла). Это +,, специальный флаг, copy указывающий ему просто обновить дату / время в файле :
* Изменение времени и даты файла
Если вы хотите назначить текущее время и дату файлу без изменения файла, используйте следующий синтаксис:
Запятые указывают на пропуск параметра Destination.
Редактируйте на основе комментариев Луми и Джастина: поместите это в пакетный файл, например. touch.cmd
Это работает, даже если файл не находится в текущем каталоге (протестировано в Windows 7).
Я использовал и рекомендую unxutils, которые являются родными портами Win32 многих распространенных утилит Unix. Там есть touch команда.
Если все, что вам нужно, это изменить дату последнего изменения файла (в моем случае):
ОБНОВИТЬ
Г! Это не работает для файлов только для чтения, в то время как touch работает. Я предлагаю:
Вот объяснение Technet таинственных ‘+’ и запятых:
Запятые указывают на пропуск параметра Destination.
Команда copy поддерживает объединение нескольких файлов в один целевой файл. Поскольку пустое место назначения не может быть указано с помощью символа пробела в командной строке, для обозначения этого можно использовать две запятые.
Проект GnuWin32 имеет порты Windows версий Gnu утилит командной строки Unix.
Вы также можете контролировать, какие инструменты устанавливать, чтобы вы могли просто установить touch.exe файл и оставить остальную часть фреймворка.
Я попытался это создать пустой файл в моем пакетном скрипте. Вы можете использовать это:
Вы также можете установить Cygwin, который дает вам Touch, а также множество других команд * NIX.
Из аналогичного вопроса о переполнении стека.
Для обновления меток времени (игнорируя другие функции touch ) я бы выбрал:
FS Touch работает на Windows XP, Vista, Windows 7 и Windows 8.
Если вы используете git для одного или нескольких проектов, команда mingw git-bash для Windows имеет touch команду. Я хочу поблагодарить @ greg-hewgill за указание на то, что утилиты ‘nix существуют для windows, потому что именно это натолкнуло меня на мысль попробовать touch в git-bash.
в PowerShell попробуйте:
Сохраните следующий файл как touch.bat в папке% windir% \ system32 или добавьте папку, в которой он сохраняется, в переменную среды PATH:
«+» Устанавливает аргумент для запуска следующих команд. «WQ!» это «написать, выйти, заставить». Это откроет файл, сохранит и закроет его сразу после этого.
Я хотел, чтобы «сенсорная» функция клонирования / дублирования файлов датировалась из другого файла, изначально, и была пригодна для использования из пакетного файла.
Таким образом, «перетащите» видеофайл в пакетный файл, FFMPEG запускается, затем «Дата создания» и «Дата изменения» из входного файла копируются в выходной файл.
Моим решением было сделать «сенсорную» часть отдельным скриптом PowerShell, который я назвал «CLONE-FILE-DATE.ps1», и он содержит:
Тогда вот пример использования в моем пакетном файле ‘CONVERT.BAT’:
Я думаю, что PowerShell читабельна, поэтому я просто объясню, что такое пакетная речь:
CHCP 65001> nul устанавливает символы в UTF-8 и глотает вывод.
-ExecutionPolicy ByPass позволяет запускать PowerShell без необходимости изменять глобальную политику, которая предотвращает случайное выполнение сценариев людьми.
Windows эквивалент командной строки «touch»?
Что вы используете, если хотите обновить поле, модифицированное датой файла в Windows?
Если кто-то знает, как я могу это сделать с помощью C ++, C #, WSH или что-то подобное, хорошо и хорошо, иначе я бы подумал, что все остальное связано с связанным вопросом.
30 ответов
Если вы хотите коснуться даты штампа файла с помощью окон, используйте следующую команду в командной строке:
* Изменение времени и даты файла
Если вы хотите присвоить текущее время и дату файлу без изменения файла, используйте следующий синтаксис:
В запятых указывается пропуск параметра Destination.
Изменить на основе комментариев Луми и Джастина: поместите это в пакетный файл, например. touch.cmd
Это работает, даже если файл отсутствует в текущем каталоге (протестирован в Windows 7).
Если вы хотите изменить последнюю измененную дату файла (это было мое дело):
UPDATE
Г! Это не работает с файлами только для чтения, тогда как touch делает. Я предлагаю:
Вот объяснение Технетом таинственных «+» и запятых:
Эти запятые указывают на отсутствие Параметр назначения.
Команда копирования поддерживает объединение нескольких файлов в один файл назначения. Поскольку пустое назначение не может быть задано с использованием символа пробела в командной строке, для обозначения этого можно использовать две запятые.
Проект GnuWin32 имеет порты Windows из версий Gnu утилит командной строки Unix.
Я попробовал это, чтобы создать пустой файл в моем пакетном скрипте. Вы можете использовать это:
Вы также можете контролировать, какие инструменты устанавливать, поэтому вы можете просто установить файл touch.exe и оставить остальную часть фреймворка.
Из аналогичного вопроса о переполнении стека.
Для обновления временных меток (игнорируя другие функции touch ), я бы пошел с:
FS Touch работает в Windows XP, Vista, Windows 7 и & Windows 8.
Этот контент можно сохранить в файл reg. Это добавит контекстное меню правой кнопки мыши для всех файлов с возможностью «Touch File» (проверено на Windows 7). Скопируйте все следующие строки в файл reg. Запустите файл и подтвердите вопрос. Щелкните правой кнопкой мыши на любом файле (или нескольких файлах). Теперь доступна опция «Touch File».
в PowerShell попробуйте:
Сохраните следующее как touch.bat в папке% windir% \ system32 или добавьте папке, в которой она сохраняется в вашей переменной среды PATH:
«+» устанавливает аргумент для запуска следующих команд. «WQ!» это «написать, выйти, заставить». Это откроет файл, сохранит его, а затем закроет его сразу же.
Файл fsutil createnew new.txt 0
Пять альтернатив, упомянутых выше, плюс три других, не упомянутых здесь, можно найти в SuperUser: » Windows Recursive Touch Command »
Это немного не связано с исходным вопросом, но я считаю это очень полезным для Windows из-за GUI.
Я использую утилиту TouchPro, которая предоставляет графический интерфейс пользователя (встраивается в оболочку проводника):
Я ценю, что это старый вопрос, я просто обнаружил, что касаюсь своей системы Windows 10. Я загрузил и установил Git из здесь (я думаю), и это выглядит как прикосновение и различные другие Утилиты находятся в папке bin.
Мне нужна функция «touch» для клонирования /дублирования дат файла из другого файла, изначально и может использоваться из пакетного файла.
Итак, видеофайл для «перетаскивания» в пакетный файл, запускается FFMPEG, затем «Дата создания» и «Дата изменения» из входного файла копируется в выходной файл.
Мое решение сделало «touch» частью отдельный сценарий PowerShell, который я назвал «CLONE-FILE-DATE.ps1», и он содержит:
Тогда вот пример использования в моем командном файле CONVERT.BAT:
Я думаю, что PowerShell читаем, поэтому просто объясните, что говорит пакет:
CHCP 65001> nul устанавливает символы в UTF-8 и проглатывает вывод.
-ExecutionPolicy ByPass позволяет запускать PowerShell без необходимости изменения глобальной политики, которая существует для предотвращения случайного запуска скриптов.
Equivalent of Linux `touch` to create an empty file with PowerShell [duplicate]
Is there an equivalent of touch in PowerShell?
For instance, in Linux I can create a new empty file by invoking:
So is there a programmatic way in PowerShell to do this?
I am not looking to exactly match behaviour of touch, but just to find the simplest possible equivalent for creating empty files.
14 Answers 14
Using the append redirector «>>» resolves the issue where an existing file is deleted:
To create a blank file:
To update the timestamp of a file:
Here is a version that creates a new file if it does not exist or updates the timestamp if it does exist.
In PowerShell you can create a similar Touch function as such:
There are a bunch of worthy answers already, but I quite like the alias of New-Item which is just: ni
You can also forgo the file type declaration (which I assume is implicit when an extension is added), so to create a javascript file with the name of ‘x’ in my current directory I can simply write:
3 chars quicker than touch!
I prefer Format-Table for this task (mnemonic file touch):
To work with non-empty files you can use:
I chose this because it is a short command that does nothing in this context, a noop. It is also nice because if you forget the redirect:
instead of giving you an error, again it just does nothing. Some other aliases that will work are Format-Custom ( fc ) and Format-Wide ( fw ).
I put together various sources, and wound up with the following, which met my needs. I needed to set the write date of a DLL that was built on a machine in a different timezone:
Of course, you can also set it for multiple files:
It looks like a bunch of the answers here don’t account for file encoding.
I just ran into this problem, for various other reasons, but
both produce a UTF-16-LE file, while
produces a UTF-8 file.
gives you a UTF-8-BOM file, while
this example does not update the timestamp for some reason, but this one does:
Although it does have the side effect of appending «foo» to the end of the file.
If you are unsure about what encoding you have, I’ve found VS-Code has a nifty feature where at the bottom right hand corner it says what the encoding is. I think Notepad++ also has a similar feature.
Русские Блоги
Командная строка Windows, команда ls / cat / mv / touch и использование веб-сайта diverhell.com
Командная строка command ls
ls Да list Сокращение, означает список всех видимых файлов в текущем каталоге, как показано на рисунке:
Это связано сdirТот же эффект, за исключением того, что папки в текущем каталоге будут отображаться разными цветами и добавляться с помощью «/»
ФИО:concatenate files and print on the standard output
Средства объединения файлов и вывода
Добавьте text4.txt text5.txt text6.txt в файл text3.txt
Примечание: только добавить без перезаписи 10、cat text4.txt text5.txt text6.txt>text3.txt
Добавьте text4.txt text5.txt text6.txt в файл text3.txt и перезапишите исходный текст
Командная строка команды mv
mv Да move Сокращение значенияПереместить файл, Как показано:
1. mv уже существует имя файла 1 уже существует имя файла 2
Например: mv text5.txt text6.txt
Результат: текст существующего имени файла 2 перезаписывается текстом существующего имени файла 1, а затем существующее имя файла 1 удаляется.
2. mv уже существует имя файла 1 не существует имя файла 2
Например: mv text6.txt text7.txt Результат: существующее имя файла 1 переименовано в несуществующее имя файла 2, т.е. text6.txt переименован в text7.txt
3. папка с именем файла mv
Такие как: mv text7.txt text Результат: файл перемещается в папку, т.е. text7.txt перемещается в текст папки
4. папка mv *
То есть все файлы в текущей папке перемещаются в указанную папку партиями Командная строка командной строки
коснитесь имени файла
Если файл не существует, создайте новый пустой файл
Если файл существует, измените отметку времени файла на текущее время
Использование пояснениеhellhell.com
Этот веб-сайт эквивалентен онлайн-API, специально для запроса инструкций командной строки over.