Batch Script for Checking time

Related searches

Is it possible to check if the time is in between two ranges and then perform an action based on it.

For eg: I want to perform an action only when the current time is not in between 11.00 PM and 6.00 A.M.

Here's what I have so far but I am unable to pin the in between part.

set "currentTime=!TIME::=!" 
set "currentTime=!currentTime:,=!"
set "_bit_compare=leq"
set "compareTime=2300"
set "compareTime1=600"

(time /t | findstr /l "AM PM" || set "_bit_compare=gtr")>nul

if "!currentTime:~0,4=!" %_bit_compare% "!compareTime!" (

    do somethinf


This is relatively easy to write using PowerShell. If you are on a supported Windows system, PowerShell will be available. This also overcomes a myriad of problems with regional variations in cmd.exe.

$h = [int](Get-Date -Format "HH")
if ($h -le 8 -or $h -ge 23) { & notepad.exe }"

To use it in a .bat file script, you could:

powershell -NoLogo -NoProfile -Command ^
    "$h = [int](Get-Date -Format "HH");" ^
    "if ($h -le 8 -or $h -ge 23) { & notepad.exe }"

How to get date / time in batch file, How to get date and time in a batch file. Below is a sample batch script which gets current date and time. Datetime.cmd @echo off for /F "tokens=2" %%i in (' date� Batch Script for Checking time. Ask Question Asked 16 days ago. Active 16 days ago. Viewed 62 times 1. Is it possible to check if the time is in between two ranges

And just to justify my comment, using wsh, (vbscript), from a batch-file:

<!-- :
@"%__AppDir__%cscript.exe" //NoLogo "%~f0?.wsf"
@If ErrorLevel 1 Exit /B
@Rem Your Commands go below here
@Echo Within range
@Rem Your commands end above here
@Exit /B
<Job><Script Language="VBScript">
        If Hour(Now())<=22 AND Hour(Now())>=6 Then
            WScript.Quit(0 Mod 255)
            WScript.Quit(1 Mod 255)
        End If

I have used Remarks to show you where you put your command or commands, and have provided two lines for demonstration purposes, (which you are free to remove once tested).

7 Ways to Measure Time Taken to Complete a Batch File or , Batch files are simple scripts that can be created by almost anyone. If a script Timer to count the amount of time taken to complete executing the io.exe test file. Similar to date command, we have the command time which lets us find the current system time. Some examples below. c:\>time /t 11:17 PM c:\>time The current time is: 23:17:18.57 Enter the new time: c:\> As you can see, the command prints the time in different formats. It prints in 12 hour format when /t is added and in 24 hours format without /t

It is a few lines more to do this in a batch file but you essentially want to get the time in a standard format. You can do that by calling out to WMIC. I am just using the hour to compare. I did not see any need to use minutes based on the provided example saying it is not in between 11.00 PM and 6.00 A.M. I am using a 1 to prefix the comparison incase of leading zeros in the hour.

@echo off

set "compareTime1=23"
set "compareTime2=06"

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YYYY=%dt:~0,4%"
SET "YY=%dt:~2,2%"
SET "MM=%dt:~4,2%"
SET "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%"
SET "min=%dt:~10,2%"
SET "sec=%dt:~12,2%"

IF 1%HH% LSS 1%compareTime1% IF 1%HH% GTR 1%compareTime2% (

Batch files - DATE and TIME, Running these batch files with CMD.EXE as the command interpreter will fail! LeapYear.bat for MS-DOS Checks if the specified or current year is� If you are writing a batch file and you don’t want to continue until somebody presses a key, you can do it really easy with the timeout command. For instance, using the following on the command prompt will pause the terminal for 10 seconds unless you press a key:

Writing a Windows batch script, Another useful batch script that can be written to diagnose your network and check performance of it. :: This batch file checks for network� # ***** # # Description: This script searches for a specific, logged on user on all or # specific Computers by checking the process "explorer.exe" and its owner. It # then enumerates the list and lets you choose a PC to disable the NIC on.

Batch Script, Posts about Batch Script written by bloggins86. Each time the script is run it will update the text file FileStats. TEXT FILE > %fileName%.txt ( REM This is where the commands go! echo Checking your network information,� 1. Bat file to call A.bat if time is less than 19:45 and to call B.bat if time is greater than 19:45(i can not use windows task scheduler in this case because i have setting which makes my download manager to trigger this parent bat file each time a file is downloaded through this download manager) batch-file.

A simple FOR loop with a SET command using the ~t modifier returns the last-modified date of the files in a directory.. See this example. @echo off setlocal enabledelayedexpansion echo Files changed today %date% FOR %%A IN (*.*)

  • The best way is to use a scripting language which uses dates as objects, not strings like batch/cmd. Powershell and Windows Scripting Host are built-in Windows scripting languages offering that functionality.
  • Thanks. I get this error: At line:1 char:33 + $h = [int](Get-Date -Format HH) ^ + ~ Unexpected token '^' in expression or statement. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecor dException + FullyQualifiedErrorId : UnexpectedToken '"if ($h -le 6 -or $h -ge 23) ' is not recognized as an internal or external command, operable program or batch file. '{' is not recognized as an internal or external command, operable program or batch file.
  • @CuriousDev - Sorry. I forgot to tell cmd that there are two (2) separate statements. Code is change. Please try again.
  • I like this as a good example of a hybrid script. But, why is mod 255 needed on the exit code?
  • @lit, a little bit of laziness, I just copied and pasted a section from one of my scripts on an external drive, (I don't have a PC, so it isn't often that I can borrow one for testing or checking my responses). I'm sure it should work properly with WScript.Quit(0) and WScript.Quit(1) or WScript.Quit 0 and WScript.Quit 1 too.
  • Your script works great. Running a few more tests. Thanks!