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

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

Ответить
Настройки темы
CMD/BAT - [решено] Команды в Win (date /T). Выбор формата даты.

Новый участник


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

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


Привет всем!
Такой вопрос, помогите разобраться, пожалуйста.
Ежедневно по крону отрабатывает bat-файл, который создаёт каталог с текущей датой:
mkdir c:\%DATE%
Как положено, появляется папочка c:\04.03.2009
На большинстве серверов (win2003) отрабатывает прекрасно, но попалась машина, которая вместо каталога с датой, создала:
c:\Ср
И действительно, в командной строке, команда: echo %DATE%, или DATE /T, выводит:
Ср 04.03.2009

В языковых стандарты (панели управления), формат даты указан, как dd.MM.yyyy.
Где указывается эта настройка? Подскажите пожалуйста, кто знает.

Отправлено: 10:52, 04-03-2009

 

Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Iska:
и там, и там A.D. »
Ну, дык, учитывая тот зоопарк версий ОС, который развели в микрософт, немудрено, что они и сами в них путаются.
А вообще, тот код для наглядности, когда речь заходит про "единость" формата даты в powershell. Операционка ведь одна и та же, команда тоже одинаковая, а вот версии PS разные и как показывает практика, результаты, увы, бывают тоже разные.
У меня Win 10 LTSB ru

-------
scio me nihil scire. Ѫ


Отправлено: 07:54, 06-02-2019 | #21



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

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


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell:
Код: Выделить весь код
$d = get-date -UFormat "%d.%m.%Y"
mkdir c:\$d

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 13:14, 07-02-2019 | #22


Ветеран


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

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


YuS_2, тут ещё что антиресно? Ежели, скажем, для какого-нибудь ЯВУ (наподобие C#, С++, VB.Net и иже с ними) тот факт, что метод вдруг начнёт возвращать какое-либо значение вместо void — оно как бы и не страшно: ну, вернул значение и вернул, подумаешь, оно никуда не присвоилось и кануло в лету. Но для PowerShell'а это не так — с его специфическим подходом «всё есть конвеер» — поскольку «всё, что не было куда-либо присвоено/передано — идёт в результат блока».

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


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Iska:
поскольку «всё, что не было куда-либо присвоено/передано — идёт в результат блока». »
Не совсем понимаю о чем именно речь...
Если в конвейер передаётся объект с кучей свойств и параметров, то логично, что они передаются все...
Если же речь о том, что после выборки определенных параметров, в следующий конвейер передаются все не запрошенные свойства, то это не во всех случаях так. Но с другой стороны, это даже полезно, т.к. в цепочке конвейера, получаем возможность дернуть то, что может вдруг понадобиться... ведь искусственное ограничение передачи незапрошенных параметров, так или иначе будет ограничивать возможности составления кода. Но повторюсь, возможно, я не совсем правильно понял о чем речь...

-------
scio me nihil scire. Ѫ


Отправлено: 22:29, 07-02-2019 | #24


Новый участник


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

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


Цитата Iska:
fhrbc, для получения даты/времени в едином формате у нас уже есть Wbem (wmic.exe). »
Если не затруднит, можно уточнить как получить в WMIC независимую от рег.настроек дату модификации файла, а то нигде не нашёл.
Текущую дату - да, а дату мод. файла - нет.
Приходится по прежнему использовать date.exe,
хотя она меня вполне устраивает, так как она делает и то и другое.

Отправлено: 05:55, 08-02-2019 | #25


Ветеран


Contributor


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

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


fhrbc,
Код: Выделить весь код
@Echo Off                                                                                                 
cls
	Set "Fin=Z:\Box_In\тра ля ля 1.txt" 
	For /f "skip=1 tokens=2 delims=.," %%a in ('2^>nul wmic datafile where "name='%Fin:\=\\%%~nx1'" get 'Last Modified' /format:csv') Do Set "FModiDT=%%a"
	For /f "skip=1 tokens=2 delims=.," %%a in ('2^>nul wmic datafile where "name='%Fin:\=\\%%~nx1'" get 'CreationDate'  /format:csv') Do Set "FCreaDT=%%a"
	Echo Last Modified %FModiDT%
	Echo CreationDate  %FCreaDT%
pause
GoTo :Eof

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


Последний раз редактировалось megaloman, 08-02-2019 в 07:58.

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

Отправлено: 07:36, 08-02-2019 | #26


Ветеран


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

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


Цитата fhrbc:
как получить в WMIC независимую от рег.настроек дату модификации файла, »
Точно так же (коллега megaloman уже сделал сие выше, я же просто напишу по аналогии с этим кодом), в качестве исходного файла выступает сам пакетный файл («set sSourceFile=%~f0»):
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~f0

for /f "usebackq skip=1 delims=" %%i in (
	`wmic.exe DataFile where "Name='%sSourceFile:\=\\%'" get LastModified`
) do for /f "tokens=1" %%j in ("%%~i") do (
	set sDateTime=%%j
	set sYear=!sDateTime:~0,4!
	set sMonth=!sDateTime:~4,2!
	set sDay=!sDateTime:~6,2!
	set sHour=!sDateTime:~8,2!
	set sMinute=!sDateTime:~10,2!
	set sSecond=!sDateTime:~12,2!
)

echo Source file: [%sSourceFile%]
echo --- LastModified ---
echo Year:   %sYear%
echo Month:  %sMonth%
echo Day:    %sDay%
echo Hour:   %sHour%
echo Minute: %sMinute%
echo Second: %sSecond%

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

Отправлено: 05:52, 10-02-2019 | #27



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - [решено] Invalid argument to date encode ПЕПЕЛАЦ13 Microsoft Windows 2000/XP 9 03-12-2008 15:05
Разное - [решено] ковычки в формате поля Date в ворде pva Программирование и базы данных 4 11-09-2008 13:04
Изменение формата даты Ilya S Программное обеспечение Windows 2 12-11-2007 11:13
[решено] Смена формата Даты в Региональных Настройках. Loki3D Microsoft Windows 2000/XP 2 19-10-2006 13:42
Date /t mihmih Microsoft Windows NT/2000/2003 1 23-01-2006 10:33




 
Переход