Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] текущая дата минус один день.

Ответить
Настройки темы
CMD/BAT - [решено] текущая дата минус один день.

Аватара для dvassilyev

Старожил


Сообщения: 194
Благодарности: 4

Профиль | Отправить PM | Цитировать


Доброго дня всем.

возникла небольшая загвоздка, нужно получить в переменную дату за минусом одного дня
типо такого echo %date% получим 31.05.2012, а мне нужно минус один день т.е. 30.05.2012 и вставить все это в путь \\server\30.05.2012

Спасибо

Отправлено: 11:08, 31-05-2012

 

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Решено для произвольного числа дней

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:47, 31-05-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для dvassilyev

Старожил


Сообщения: 194
Благодарности: 4

Профиль | Отправить PM | Цитировать


нашел вот такой батник немного переделал, все работало, сегодня получил дату 0.6.2012 не много не то

for /f "tokens=1,2* delims=." %%I in ('echo %date%') do set /a day=%%I& set /a mon=%%J& set /a year=%%K
set /a day-=1
md c:\%day%.%mon%.%year%

Отправлено: 09:33, 01-06-2012 | #3


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата dvassilyev:
сегодня получил дату 0.6.2012 »

Попробуйте так:
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set d=%date:~0,2%
set m=%date:~3,2%
set y=%date:~6,4%

if %d:~0,1%==0 set d=%d:~1%
if %m:~0,1%==0 set m=%m:~1%

set /a feb=y%%4
if %feb%==0 (set feb=29) else (set feb=28)

set /a tok=m-1
if %tok%==0 set tok=12
for /f "tokens=%tok%" %%i in ("31 %feb% 31 30 31 30 31 31 30 31 30 31") do (
:: минус 1 день  set /a d-=1
   set /a d-=1
    if !d!==0 (
        set d=%%i
        set m=%tok%
        if !m!==12 set /a y-=1
    )
)
set d=0%d%
set m=0%m%
set yesterday=%d:~-2%.%m:~-2%.%y%

echo %yesterday%
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:27, 01-06-2012 | #4


Аватара для dvassilyev

Старожил


Сообщения: 194
Благодарности: 4

Профиль | Отправить PM | Цитировать


все ок, робит отлично

Спасибо большое

Отправлено: 11:05, 02-07-2012 | #5


Аватара для CyberMuesli

Старожил


Сообщения: 207
Благодарности: 18

Профиль | Отправить PM | Цитировать


Цитата sov44:
set /a feb=y%%4 »
високосным является не год, который делится без остатка на 4, а тот, который делится на 4, кроме тех, которые делятся на 100, но не делятся на 400

-------
Кибер Мюсли

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:01, 02-07-2012 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


CyberMuesli, народ так далеко не заглядывает, а 2000-й удачно пришёлся на указанное исключение.

Отправлено: 18:28, 02-07-2012 | #7


Аватара для CyberMuesli

Старожил


Сообщения: 207
Благодарности: 18

Профиль | Отправить PM | Цитировать


Цитата Iska:
народ так далеко не заглядывает »
а почему серым цветом и маленькими буквами?

-------
Кибер Мюсли


Отправлено: 18:29, 02-07-2012 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Потому что я написал оффтопиком своё мнение.

Отправлено: 19:22, 02-07-2012 | #9


Аватара для CyberMuesli

Старожил


Сообщения: 207
Благодарности: 18

Профиль | Отправить PM | Цитировать


Цитата Iska:
Потому что я написал оффтопиком своё мнение »
всё по теме

-------
Кибер Мюсли


Отправлено: 19:23, 02-07-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] текущая дата минус один день.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Текущая дата в пути к файлу AlexVong Скриптовые языки администрирования Windows 3 18-11-2011 00:43
Обновленные Apple MacBook Pro: минус SSD, плюс Thunderbolt OSZone News Новости железа 0 24-02-2011 20:30
Интернет празднует еще один день рождения OSZone News Новости информационных технологий 0 01-11-2009 16:30
"День 7" - на носу: Windows 7 осталось ждать один день OSZone News Новости и события Microsoft 0 21-10-2009 12:30
Вопрос по лицензированию w2k3 (просрочил один день) mark4ever Microsoft Windows NT/2000/2003 6 31-05-2006 08:50




 
Переход