Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   помогите с %data% (http://forum.oszone.net/showthread.php?t=317457)

rkudinov@vk 03-08-2016 11:15 2656442

помогите с %data%
 
доброго времени суток.
есть кусок батника:

Код:

ECHO %DATE%
set  /a D=%date:~0,2% - 1
set  M=%date:~3,2%
set  Y=%date:~8,2%
set DT=%D%%M%%Y%
echo %DT%
rename pp.txt p-%DT%.txt

проблема в том, что вместо желаемого p-020816.txt получается p-20816.txt.
помогите

Iska 03-08-2016 14:45 2656510

Цитата:

Цитата rkudinov@vk
проблема в том, что вместо желаемого p-020816.txt получается p-20816.txt. »

Это не проблема, так и должно быть.

Напишите, что Вы хотите получить? Вчерашнюю дату? Так она считается совсем не так (плюс, учитывая, что сегодня может быть первый день месяца и года).

rkudinov@vk 03-08-2016 15:06 2656516

Получить хотел вчерашнию дату что бы с нуля после p- начиналась, но так понимаю не получится..(
А что не так считается (учитывать первый день не нужно) ?

alpap 03-08-2016 15:21 2656522

rkudinov@vk,
Допустим сегодня 01.03.2016, пораскиньте мозгами, отняв отсюда один день, что получится? А ведь и год надо учесть (да и про високосный не забыть :) ).

Если разово и для точно известного конкретного случая пятая строка вашего кода
Код:

set DT=%D%%M%%Y%& if %D% leq 9 set DT=0%D%%M%%Y%
все выше сказанное мною - в силе.

rkudinov@vk 03-08-2016 17:12 2656563

Спасибо, помогло.
По поводу первого дня: спасибо за предупреждения. Решу эту задачку самостоятельно.
leg - считает количество символов в переменной?

alpap 03-08-2016 18:26 2656591

Цитата:

Цитата rkudinov@vk
leg - считает количество символов в переменной? »

Код:

if /?
(меньше-равно)

Iska 03-08-2016 18:56 2656598

Цитата:

Цитата rkudinov@vk
Решу эту задачку самостоятельно. »

Можете порыться по разделу — решалась здесь неоднократно.

Цитата:

Цитата rkudinov@vk
leg - считает количество символов в переменной? »

«leq». Где читать — показал выше коллега alpap.

alpap 03-08-2016 19:53 2656614

Цитата:

Цитата rkudinov@vk
Решу эту задачку самостоятельно. »

В принципе, за вас ее уже дааавно решили:
Код:

@echo off
powershell "(get-date).adddays(-1).tostring('ddMMyy')"|set/p x=^& cmd/v/c ren "pp.txt" "p-!x!.txt"
exit

.

Iska 04-08-2016 00:52 2656701

alpap, в этом случае пакетный файл излишен.


Время: 23:21.

Время: 23:21.
© OSzone.net 2001-