Me sorprende cuántas respuestas aquí son incorrectas . Hacer eco de nada en un archivo llenará el archivo con algo así ECHO is ON
, y tratar de hacer eco $nul
en un archivo literalmente lo colocará $nul
en el archivo. Además, para PowerShell, hacer eco $null
en un archivo en realidad no generará un archivo de 0kb, sino algo codificado como UCS-2 LE BOM
, que puede ser complicado si necesita asegurarse de que sus archivos no tengan una marca de orden de bytes.
Después de probar todas las respuestas aquí y hacer referencia a algunas similares, puedo garantizar que funcionarán por consola. Simplemente cambie FileName.FileExtension
a la ruta completa o relativa del archivo que desea touch
; Gracias a Keith Russell por la COPY NUL FILE.EXT
actualización:
CMD con actualizaciones de fecha y hora
copy NUL FileName.FileExtension
Esto creará un nuevo archivo llamado lo que haya colocado en lugar de FileName.FileExtension
un tamaño de 0 bytes. Si el archivo ya existe, básicamente se copiará en el lugar para actualizar la marca de tiempo. Diría que esto es más una solución alternativa que la funcionalidad 1: 1, touch
pero no conozco ninguna herramienta incorporada para CMD que pueda lograr actualizar la marca de tiempo de un archivo sin cambiar ningún otro contenido.
CMD sin actualizaciones de fecha y hora
if not exist FileName.FileExtension copy NUL FileName.FileExtension
Powershell con actualizaciones de fecha y hora
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
Sí, funcionará en la consola como una línea; no es necesario colocarlo en un archivo de script de PowerShell.
PowerShell sin actualizaciones de fecha y hora
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
touch
. Otra discusión aquí: superuser.com/questions/10426/… y la biblioteca Cygwin es un conjunto de herramientas común de comandos de Unix en Windows.