Команды в Win (date /T). Выбор формата даты.
Привет всем!
Такой вопрос, помогите разобраться, пожалуйста. Ежедневно по крону отрабатывает bat-файл, который создаёт каталог с текущей датой: mkdir c:\%DATE% Как положено, появляется папочка c:\04.03.2009 На большинстве серверов (win2003) отрабатывает прекрасно, но попалась машина, которая вместо каталога с датой, создала: c:\Ср И действительно, в командной строке, команда: echo %DATE%, или DATE /T, выводит: Ср 04.03.2009 В языковых стандарты (панели управления), формат даты указан, как dd.MM.yyyy. Где указывается эта настройка? Подскажите пожалуйста, кто знает. |
timur_m, посмотрите параметр sShortDate в разделе реестра HKEY_CURRENT_USER\Control Panel\International. А если батник работает от имени SYSTEM, то в ветке HKEY_USERS\.DEFAULT\Control Panel\International.
|
Вот .bat файл для получения даты и времени независимо от региональных настроек на компьютере. Из текста видно, что формируются 7 переменных, которые можно использовать в любой удобной комбинации.
Код:
@echo off Важно: создаваемый батником файл d_t.com является 16-разрядным приложением и не сможет работать на х64 ОС. |
gora,
а такой вопрос, имеется: PHP код:
PHP код:
4.3.09 если же ввести: PHP код:
Неправильное число. Числовые константы должны быть десятичными (17) шестнадцатеричными (0x11),или восьмеричными (021). То есть дату обрезать не получится, до результата 4.3.9? |
tr011_tmn, так будет корректнее:
Код:
set D=1%date:~0,2% |
gora, только что проверил результат тот же
Неправильное число. Числовые константы должны быть десятичными (17) шестнадцатеричными (0x11),или восьмеричными (021). тем более используя: Код:
set /a DD=%D% - 100 -96 -97 |
Цитата:
|
Цитата:
не могли бы вы уточнить что означает 1 перед %%? исключительно ради любопытства. ведь если я правильно понял то мы добавляем знак перед %% и получаем значение 1%%. при %Y%, это 12009, или я что то не так понял? |
Цитата:
Код:
set D=1%date:~0,2% |
Отнекрофилю тему :)
Давно уже собирался написать, но только, вот, руки дошли. Чутка облагородить бы надо код: Код:
REM Code by Herbert Kleebauer Глюки когда-нибудь вылезут из-за :: - застрелишься искать и догадываться :) Присоветую еще заиметь папочку %SystemRoot%\_Add, которую указать в %Path%, и складывать в нее такие вот вкусняшки. Тогда не надо будет создавать-удалять при каждом вызове. Как-то коряво это... . |
gora,
Цитата:
|
Цитата:
Скрытый текст
Код:
@echo off |
Если извратить код Iska, чтобы без восклицаний:
Код:
@Echo Off |
Код:
@echo off |
Вложений: 1
Утилита Файл 156364 (38.5 КБ) из комплекта UnxUtils
позволяет получить данные о дате времени в любом формате независимо от региональных настроек. Примеры использования: Показать текущие ГГГГ-ММ-ДД Код:
date.exe +"%%Y-%%m-%%d" Записать дату/время в переменную в нужном формате Код:
for /f "tokens=*" %%i in ('date.exe +"%%Y-%%m-%%d %%H:%%M:%%S"') do set timestamp=%%i Код:
for /f "tokens=1,2,3,4,5,6* delims=," %%i in ( Код:
for /f "tokens=1,2,3,4,5,6* delims=," %%i in ( Код:
for %%V in (%%m %%d) do (set /a %%V=1!%%V!-100) |
fhrbc, для получения даты/времени в едином формате у нас уже есть Wbem (wmic.exe).
|
Цитата:
Код не совсем мой, откуда стырена идея, уже не помню, но работает почти на всех windows: Код:
@echo off |
Все что угодно, лишь бы не изучать пошик
https://www.outsidethebox.ms/14845/#Get-Date |
Цитата:
Код:
'{0:g.yyyy.MM.dd HH:mm:ss}' -f (get-date) Код:
PS_5.1> '{0:g.yyyy.MM.dd HH:mm:ss}' -f (get-date) |
YuS_2, а у меня на 5.1 и там, и там A.D. ;) (Windows 7 SP1 x64, CurrentCulture — 1049, ru-RU, Русский (Россия)):
Скрытый текст
Код:
PS C:\> powershell.exe -v 2.0 |
Цитата:
А вообще, тот код для наглядности, когда речь заходит про "единость" формата даты в powershell. Операционка ведь одна и та же, команда тоже одинаковая, а вот версии PS разные и как показывает практика, результаты, увы, бывают тоже разные. :) У меня Win 10 LTSB ru |
Powershell:
Код:
$d = get-date -UFormat "%d.%m.%Y" |
YuS_2, тут ещё что антиресно? Ежели, скажем, для какого-нибудь ЯВУ (наподобие C#, С++, VB.Net и иже с ними) тот факт, что метод вдруг начнёт возвращать какое-либо значение вместо void — оно как бы и не страшно: ну, вернул значение и вернул, подумаешь, оно никуда не присвоилось и кануло в лету. Но для PowerShell'а это не так — с его специфическим подходом «всё есть конвеер» — поскольку «всё, что не было куда-либо присвоено/передано — идёт в результат блока».
|
Цитата:
Если в конвейер передаётся объект с кучей свойств и параметров, то логично, что они передаются все... Если же речь о том, что после выборки определенных параметров, в следующий конвейер передаются все не запрошенные свойства, то это не во всех случаях так. Но с другой стороны, это даже полезно, т.к. в цепочке конвейера, получаем возможность дернуть то, что может вдруг понадобиться... ведь искусственное ограничение передачи незапрошенных параметров, так или иначе будет ограничивать возможности составления кода. Но повторюсь, возможно, я не совсем правильно понял о чем речь... |
Цитата:
Текущую дату - да, а дату мод. файла - нет. Приходится по прежнему использовать date.exe, хотя она меня вполне устраивает, так как она делает и то и другое. |
fhrbc,
Код:
@Echo Off |
Цитата:
Скрытый текст
Код:
@echo off |
Время: 20:40. |
Время: 20:40.
© OSzone.net 2001-