I need to print time in a batch file but command prompt tells me that the syntax is incorrect.Here is the code i have so far:

@echo %time%ping -n 1 -w 1 127.0.0.1 1>nul@echo %time%pausecls

I don't know why it isn't working, Please help Me.

7

Best Answer


This works with Windows 10, 8.x, 7, and possibly further back:

@echo Started: %date% %time%...@echo Completed: %date% %time%

If you use the command

time /T

that will print the time. (without the /T, it will try to set the time)

date /T

is similar for the date.

If cmd's Command Extensions are enabled (they are enabled by default, but in this question they appear to be disabled), then the environment variables %DATE% and %TIME% will expand to the current date and time each time they are expanded. The format used is the same as the DATE and TIME commands.

To see the other dynamic environment variables that exist when Command Extensions are enabled, run set /?.

we can easily print the current time and date using echo and system variables as below.

echo %DATE% %TIME%

output example: 13-Sep-19 15:53:05.62

echo %TIME% & echo. & echo %DATE%

The output will be:

14:35:47,88

Pzt 24.10.2022

Not sure if your question was answered.

This will write the time & date every 20 seconds in the file ping_ip.txt. The second to last line just says run the same batch file again, and agan, and again,..........etc.

Does not seem to create multiple instances, so that's a good thing.

@echo %time% %date% >>ping_ip.txtping -n 20 -w 3 127.0.0.1 >>ping_ip.txtThis_Batch_FileName.batcls

The simplest way using just DOS is echo. | time.

This method even works in a Windows 7 x64 Command window.

You can use the command time /t for the time and date /t for the date, here is an example:

@echo offtime /t >%tmp%\time.tmpdate /t >%tmp%\date.tmpset ttime=<%tmp%\time.tmpset tdate=<%tmp%\date.tmpdel /f /q %tmp%\time.tmpdel /f /q %tmp%\date.tmpecho Time: %ttime%echo Date: %tdate%pause >nul

You can also use the built in variables %time% and %date%, here is another example:

@echo offecho Time: %time:~0,5%echo Date: %date%pause >nul