Нужна помощь в наборе чисел месяц и день с ведущим 0 - PullRequest
1 голос
/ 21 августа 2009

Я работаю в пакетном файле и мне нужно добавить одну цифру с начальным 0, если меньше 10. У меня есть значения в переменных среды. Это месяц и день, мне нужно дополнить структуру файла, с которой я работаю. Я использую vbscript, чтобы вернуть дату, которая возвращается в следующем формате "16.07.2009". Нужно, чтобы он выглядел как «16.07.2009», и наиболее важно, чтобы каждый элемент был в отдельных EV.

VBscript:

WScript.Echo DateAdd("d", Date, -36)

Пакетная:

for /F "tokens=1-3 delims=/" %%x in ('cscript //nologo get36thday.vbs') do (
   SET YYYY=%%z
   SET MM=%%x
   SET DD=%%y)

Ответы [ 4 ]

8 голосов
/ 21 августа 2009

VBScript:

dteOldDate = Now()
strNewDate = Right("00" & Month(dteOldDate), 2) & "/" & Right("00" & Day(dteOldDate), 2) & "/" & Year(dteOldDate)
3 голосов
/ 21 августа 2009

Для пакетного сценария я не знаю синтаксис точный , но пакетный сценарий может возвращать указанное количество символов со стороны справа строки.

Итак, добавьте месяц после символа «0» и возьмите 2 самые правые цифры. Вероятно, это будет выглядеть примерно так:

SET MM=0%%x
SET MM=%MM:~-2%

1 становится 01
5 становится 05
10 пребываний 10

0 голосов
/ 08 ноября 2012

Хотя другие ответы полезны, если вы не знаете длину строки, которую вы хотите заполнить нулями впереди, для дат и времени подойдет простая замена строки.

set hour=!TIME:~0,2!
set hour=!hour: =0!

Короче говоря, если есть пробел, он будет заменен на 0.

0 голосов
/ 27 января 2012

Вот мой метод заполнения строк.

В этом примере MYVAR будет дополнен пятью нулями.

SET MYVAR=00000%MYVAR%
SET MYVAR=%MYVAR:~-5%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...