|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как узнать точное время изменения файла до секунд |
|
|
CMD/BAT - [решено] Как узнать точное время изменения файла до секунд
|
Пользователь Сообщения: 90 |
Профиль | Отправить PM | Цитировать Этот код показывает время с точностью до минут в формате DD-MM-YYYY HH:MM
Надо с точностью до секунд и в формате DD-MM-YYYY_HH-MM-SS (добавить знак _ после года и заменить : на - ) |
|
Отправлено: 00:50, 07-09-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=E:\Песочница\0397\Sample.txt
if exist "%sSourceFile%" (
for /f "usebackq skip=1 delims=" %%i in (
`wmic.exe DataFile where "Name='%sSourceFile:\=\\%'" get LastModified`
) do for /f %%j in ("%%~i") do (
set sVar=%%~j
set sLastModified=!sVar:~6,2!-!sVar:~4,2!-!sVar:~0,4!_!sVar:~8,2!-!sVar:~10,2!-!sVar:~12,2!
echo !sLastModified!
)
) else (
echo Can't find source file [%sSourceFile%].
exit /b 1
)
endlocal
exit /b 0
|
|
Отправлено: 07:05, 07-09-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
Цитата Georgio:
@echo off SET f=%~dp0 for /f "delims=" %%i in ('dir /b /a:-d /o:d "%f%RECEIVE\*.USR"') do set usrnew=%%i for /f "delims=" %%i in ('mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(Replace(Replace(Replace(CreateObject("Scripting.FileSystemObject").GetFile("%f%RECEIVE\%usrnew%").DateLastModified,Chr(46),Chr(45)),Chr(32),Chr(95)),Chr(58),Chr(45)))&Close()"') do set usrtime=%%i echo %usrtime% pause |
||
Последний раз редактировалось V!RTuE, 07-09-2014 в 21:17. Отправлено: 21:00, 07-09-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq delims=" %%i in (`dir /b /s /a:-d /o:d "%~dp0RECEIVE\*.USR" 2^>nul`) do ( set sSourceFile=%%~i for /f "usebackq skip=1 delims=" %%j in ( `wmic.exe DataFile where "Name='!sSourceFile:\=\\!'" get LastModified` ) do for /f %%k in ("%%~j") do ( set sVar=%%~k set sLastModified=!sVar:~6,2!-!sVar:~4,2!-!sVar:~0,4!_!sVar:~8,2!-!sVar:~10,2!-!sVar:~12,2! echo !sSourceFile! echo !sLastModified! ) ) endlocal exit /b 0 |
Отправлено: 21:22, 07-09-2014 | #4 |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Как переделать код, чтобы сканировал только каталог %~dp0RECEIVE\ и игнорировал все подкаталоги? |
||
Отправлено: 01:18, 08-09-2014 | #5 |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
|
|
Отправлено: 01:38, 08-09-2014 | #6 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off set "f=%~dp0" for /f "delims=" %%i in ('dir /b /a:-d /o:d "%f%RECEIVE\*.USR"') do set usrnew=%%i for /f "tokens=1,2" %%i in ('mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(new ActiveXObject('Scripting.FileSystemObject').GetFile('%f:\=\\%RECEIVE\\%usrnew%').DateLastModified);close();"') do set x=%%i& set y=%%j for /f %%i in ('mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(Replace(Replace(Replace("%x%"&Chr(32)&"%y%",Chr(46),Chr(45)),Chr(32),Chr(95)),Chr(58),Chr(45)))&Close()"') do set usrtime=%%i echo %usrtime% pause>nul exit /b |
Отправлено: 03:11, 08-09-2014 | #7 |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Georgio, спасибо. теперь работает. Но на мгновение пару раз появляется окно и закрывается. Можно ли как то сделать, чтобы вообще не появлялось ничего?
|
Отправлено: 03:23, 08-09-2014 | #8 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать V!RTuE, практически нельзя. Если бы не "close();" и "&Close()", окна вообще пришлось бы закрывать вручную.
|
Отправлено: 03:35, 08-09-2014 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (`dir /b /a:-d /o:d "%~dp0RECEIVE\*.USR" 2^>nul`) do (
set sSourceFile=%~dp0RECEIVE\%%~i
for /f "usebackq skip=1 delims=" %%j in (
`wmic.exe DataFile where "Name='!sSourceFile:\=\\!'" get LastModified`
) do for /f %%k in ("%%~j") do (
set sVar=%%~k
set sLastModified=!sVar:~6,2!-!sVar:~4,2!-!sVar:~0,4!_!sVar:~8,2!-!sVar:~10,2!-!sVar:~12,2!
echo !sSourceFile!
echo !sLastModified!
)
)
endlocal
exit /b 0
|
|
Отправлено: 07:29, 08-09-2014 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как узнать точное название процессора | Tiim | Процесcоры | 12 | 05-07-2016 23:55 | |
VBS/WSH/JS - Дата и время изменения файла | lorents | Скриптовые языки администрирования Windows | 19 | 01-02-2015 19:28 | |
[решено] Как установить время создания файла с точностью до миллисекунды? | elakt | AutoIt | 5 | 14-05-2011 22:38 | |
CMD/BAT - [решено] Подскажите как получить время изменения файла -15 минут | osp2008 | Скриптовые языки администрирования Windows | 7 | 29-07-2010 15:04 | |
Любой язык - [решено] Системное время с точностью до секунд из bat | BugSoft | Скриптовые языки администрирования Windows | 1 | 15-12-2008 16:55 |
|