2013-06-28 3 views
2

когда я делаюотдельный день месяц и год из пакетного файла Дата

echo %date% 

я получить выход как

pet 28.06.2013 

другие даты

pon -> monday 
tor -> tuesday 
sre -> wedneday 
cet -> thursday 
pet -> friday 
sob -> saturday 
ned -> sunday 

Я написал следующий пакетный файл, чтобы получить день и время. но он не работает. пожалуйста, помогите/

FOR /F "tokens=1-3 delims=." %%A IN ("%sample%") DO (
    SET day=%%A 
    SET month=%%B 
    SET year=%%C 
) 
echo %day% 
echo %month% 
echo %year% 

выход

pet 28 
06 
2013 

Я хочу, чтобы выход в

28 
06 
2013 

ответ

4

Использование

"tokens=2-4delims=. " 

Обратите внимание на пробел перед закрытием "

+0

благодаря его работы –

2

Добавить пробел в качестве разделителя.

FOR /F "tokens=1-4 delims=. " %%A IN ("%sample%") DO (
    SET day=%%B 
    SET month=%%C 
    SET year=%%D 
) 
echo %day% 
echo %month% 
echo %year% 
0

Для надежной штамповки даты используется WMIC в XP Pro и выше.

@echo off 
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a 
set datestamp=%dt:~0,8% 
set timestamp=%dt:~8,6% 
set YYYY=%dt:~0,4% 
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% 

set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec% 
echo stamp: "%stamp%" 
echo datestamp: "%datestamp%" 
echo timestamp: "%timestamp%" 

pause 
7

Это будет сделано на основе локальной даты на вашем компьютере.Я использую коррекции на основе моей локальной даты компьютера, который Fri 06/28/2013 - вы можете настроить для твоих, как показано ниже):

Mine (в dateparse.bat):

@ECHO OFF 
@ECHO. 
@ECHO Date is %Date% 
SET DayOfWeek=%Date:~0,3% 
SET Day=%Date:~7,2% 
SET Month=%Date:~4,2% 
SET Year=%Date:~10,4% 
SET Today=%Date:~10,4%-%Date:~4,2%-%Date:~7,2% 
@ECHO Year is %Year%, Month is %Month%, Day is %Day%, DayOfWeek is %DayOfWeek% 
@ECHO Today is %Today% 
@ECHO. 

Выход:

Output of dateparse.bat

Пояснение (первые два задания, остальное вам осталось) - обратите внимание, что смещение вывода основано на нулевом значении, поэтому первым символом является индекс 0, второй - индекс 1, и так далее:

  • SET DayOfWeek= создает переменную окружения с именем DayOfWeek
  • %date% производит отображение даты на вашей системе, как pet 28.06.2013
  • :~,3 принимает подстроку, начиная с первого (индекс 0) из 3-х символы (пт)
  • SET дня = создает Day переменные окружения Day
  • :~7,2 принимает подстроку, начиная с позиции 8 (индекс 7), из 2-х символов (28)

Yours (непроверенные - может потребоваться корректировка):

SET DayOfWeek=%Date:%~0,3% 
SET Day=%Date:~4,2% 
SET Month=%Date:~7,2% 
SET Year=%Date:~10,4% 
ECHO %Year% %Month% %Day% %DayOfWeek% %Today%