[ОТВЕТИТЬ]
Опции темы
08.08.2007 12:12  
OlegON
Вот ломаю голову, у меня батничек выводит дату в файл, который я потом отправляю по почте. В этом файле данные за предыдущие сутки. Можно ли как-то в cmd вывести предыдущую дату? Пока так, т.е. текущую
Цитата:
date /t>rep.txt
 
"Спасибо" OlegON от:
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, время: 13:50.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.