Войти

Показать полную графическую версию : [решено] Команды в Win (date /T). Выбор формата даты.


Страниц : 1 [2]

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

DJ Mogarych
07-02-2019, 13:14
Powershell:
$d = get-date -UFormat "%d.%m.%Y"
mkdir c:\$d

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

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

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

megaloman
08-02-2019, 07:36
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

Iska
10-02-2019, 05:52
как получить в WMIC независимую от рег.настроек дату модификации файла, »
Точно так же (коллега megaloman уже сделал сие выше, я же просто напишу по аналогии с этим (http://forum.oszone.net/post-2848016.html#post2848016) кодом), в качестве исходного файла выступает сам пакетный файл («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




© OSzone.net 2001-2012