Windows equivalent of the Linux command 'touch'?
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Droplet of life
--
Chapters
00:00 Windows Equivalent Of The Linux Command 'Touch'?
00:35 Answer 1 Score 168
00:47 Accepted Answer Score 440
01:36 Answer 3 Score 33
02:09 Answer 4 Score 69
02:34 Thank you
--
Full question
https://superuser.com/questions/10426/wi...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#windows #fileattributes #touch
#avk47
ACCEPTED ANSWER
Score 440
If you want to touch the date stamp of a file using windows, use the following command at the command prompt:
copy /b filename.ext +,,
(where filename.ext
is your file's name). The +,,
is a special flag to copy
telling it to simply update the date/time on the file:
* Changing the time and date of a file
If you want to assign the current time and date to a file without modifying the file, use the following syntax:
copy /b Source+,,
The commas indicate the omission of the Destination parameter.
Edit based on comments by Lumi and Justin: put this in a batch file, eg. touch.cmd
@COPY /B %1+,, %1
This works even if the file is not in the current directory (tested on Windows 7).
ANSWER 2
Score 168
I've used and recommend unxutils which are native Win32 ports of lots of common Unix utilities. There is a touch
command in there.
ANSWER 3
Score 69
type nul >>file & copy file +,,
- Creates
file
if it does not exist. - Leaves file contents alone.
- Just uses
cmd
built-ins. - Both last-access and creation times updated.
UPDATE
Gah! This doesn't work on read-only files, whereas touch
does. I suggest:
:touch
if not exist "%~1" type nul >>"%~1"& goto :eof
set _ATTRIBUTES=%~a1
if "%~a1"=="%_ATTRIBUTES:r=%" (copy "%~1"+,,) else attrib -r "%~1" & copy "%~1"+,, & attrib +r "%~1"
ANSWER 4
Score 33
@dash-tom-bang:
Here is Technet's explanation of the mysterious '+' and commas:
copy /b Source+,,
The commas indicate the omission of the Destination parameter.
The copy command supports merging multiple files into a single destination file. Since a blank destination cannot be specified using a space character at the command prompt, two commas can be used to denote that.
And this is Technet's copy command reference: http://technet.microsoft.com/en-us/library/bb490886.aspx