08.08.2007 12:12
OlegON
 
Вот ломаю голову, у меня батничек выводит дату в файл, который я потом отправляю по почте. В этом файле данные за предыдущие сутки. Можно ли как-то в cmd вывести предыдущую дату? Пока так, т.е. текущую
Цитата:
date /t>rep.txt
08.08.2007 17:48
Pyatak
 
Напиши свою консольную утилитку, которая будет вчерашнюю дату выводить. Это ж две минуты займет. Стандартными средствами вроде никак.
08.08.2007 18:36
OlegON
 
Цитата:
Pyatak Напиши свою консольную утилитку, которая будет вчерашнюю дату выводить. Это ж две минуты займет. Стандартными средствами вроде никак.
Да я в базу залез и селектом выдрал :) но некрасиво. Думаю, что можно, только не соображу как.
08.08.2007 18:54
student
 
Цитата:
OlegON Да я в базу залез и селектом выдрал :) но некрасиво. Думаю, что можно, только не соображу как.
vbs случаем не подойдет?

файл 2.vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.CreateTextFile("rep.txt")
TextStream.Write(DateAdd("d",-1,DATE))
TextStream.Close
Set FSO = Nothing
WScript.Quit

файл 1.cmd
wscript.exe 2.vbs

запускаем 1.cmd и получаем в rep.txt
07/08/2007 - значение если не устраивает можно format -ом подправить
08.08.2007 20:03
OlegON
 
Да, увы, похоже, что кроме как сторонних стредств, тут ничего не придумать.. Даже если разбить на числа, то такой скриптище надо будет написать на числа месяца и високосные года... Вот, для затравки, возможности cmd:
Цитата:
@echo off&SETLOCAL

:: This will return date into environment vars
:: Works on any NT/2K/XP machine independent of regional date settings
:: 20 March 2002

FOR /f "tokens=1-4 delims=/-. " %%G IN ('date /t') DO (call :s_fixdate %%G %%H %%I %%J)
goto :s_print_the_date

:s_fixdate
if "%1:~0,1%" GTR "9" shift
FOR /f "skip=1 tokens=2-4 delims=(-)" %%G IN ('echo.^|date') DO (
set %%G=%1&set %%H=%2&set %%I=%3)
goto :eof

:s_print_the_date
echo Month:[%mm%] Day:[%dd%] Year:[%yy%]
ENDLOCAL&SET mm=%mm%&SET dd=%dd%&SET yy=%yy%
08.08.2007 21:52
Sullen
 
Поддерживаю вариант с WScript (или Cscript), дешево и сердито.
Тем более WScript можно рассматривать как расширение Cmd в некотором роде.
09.08.2007 09:04
student
 
Цитата:
Sullen Поддерживаю вариант с WScript (или Cscript), дешево и сердито.
Тем более WScript можно рассматривать как расширение Cmd в некотором роде.
На vbs можно полноценный cmd написать *12
09.08.2007 09:06
student
 
Цитата:
Sullen Поддерживаю вариант с WScript (или Cscript), дешево и сердито.
Тем более WScript можно рассматривать как расширение Cmd в некотором роде.
На vbs можно полноценный cmd написать *12 - все зависит от того, что надо сделать - практически там все есть*44
09.08.2007 09:26
OlegON
 
Вот еще кидают ссылок :)
Цитата:
1. Если использовать команду DATE /t >%D_Date% теперь есть текущая дата в переменной %D_Date% можешь вычленять из нее, что хочешь и компоновать как надо.
2. В W2000 есть зарезервированные системные переменные DATE и TIME, которые нигде не описаны. Попробуй проиграться с ними.
echo %DATE%echo %TIME%
09.08.2007 09:41
Sullen
 
Цитата:
student На vbs можно полноценный cmd написать *12 - все зависит от того, что надо сделать - практически там все есть*44
Полностью согласен...
Олег, чем тебе VBScript не глянется? *49
Часовой пояс GMT +3, время: 03:52.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.