I need to get just HH:MM to the code work but if I do echo %TIME%  the variable is HH:MM:SS, how can I break the string or make it show just hours and minutes?
            Asked
            
        
        
            Active
            
        
            Viewed 1,266 times
        
    -2
            
            
         
    
    
        Pedro Fontoura
        
- 13
- 5
- 
                    TBF, the question seems to be more about variable expansion than how to get the date and time in a specific format, _(although getting a known consistent format should be essential as part of the task)_. I have therefore provided an answer which achieves both the consistent format and the required expansion. – Compo Feb 02 '21 at 15:30
2 Answers
0
            
            
        echo %TIME:~0,-3%
Although %time% for me shows 22:23:01.87
so for me,
echo %TIME:~0,-6%
See set /? from the prompt for more info.
 
    
    
        Magoo
        
- 77,302
- 8
- 62
- 84
0
            
            
        The biggest issue with your idea is that %TIME% is not output in a consistent format accross locales, PC's, or users. If you want a method which should work regardless of PC or User settings, then the following may help you:
@For /F "Tokens=2-3 Delims=: " %%G In ('""%__AppDir__%Robocopy.exe" \: . /NJH /L | "%__AppDir__%find.exe" " 123""') Do @Echo %%G:%%H
You may be better advised to use the same method to save new variables with the current date and time in a known format first, i.e. yyyy/MM/dd and hh:mm:ss, then use variable expansion on the time one to either the first five characters ~,5, or the everything except for the last three, ~,-3.
@For /F "Tokens=1-2" %%G In (
    '""%__AppDir__%Robocopy.exe" \: . /NJH /L | "%__AppDir__%find.exe" " 123""'
) Do @Set "NowDate=%%G" & Set "NowTime=%%H"
@Set Now & Echo hh:mm is %NowTime:~,5% & Pause
The last line is just included to provide you with example output, you would obviously change that to suit your own purposes.
 
    
    
        Compo
        
- 36,585
- 5
- 27
- 39