Войти

Показать полную графическую версию : [решено] Взять значение из свойства файла


sov44
26-05-2011, 07:56
Подскажите, возможно ли посредством командного файла зайти в свойства файла и записать оттуда значение? В частности интересует, как в перечне файлов .msp войти в свойства, из вкладки "Общие" строки "Изменен:" взять только значение даты (например 24 января 2010г.), сравнить с датами в других .msp и вывести в echo самую позднюю дату в формате 24.01.2010

amel27
26-05-2011, 08:27
по всем msp-файлам текущего каталога:
@echo off
for /f "delims=" %%d in ('dir/b/od *.msp') do set "$d=%%~td"
echo %$d:~,10%

pause>nul

gora
26-05-2011, 08:30
@Echo Off
SetLocal EnableDelayedExpansion
:: Обрабатываемая папка
Set Folder=n:\_My_ADDONs\_DotNet11_40\DNet1140\DotNet40\NetMSP

Set lastDate=
For /F "Delims=" %%i In ('DIR /B/S/A-D "%Folder%\*.msp"') Do (
Set datchng=%%~ti
If "!datchng:~6,4!!datchng:~3,2!!datchng:~0,2!" GTR "!lastDate!" Set lastDate=!datchng:~6,4!!datchng:~3,2!!datchng:~0,2!
)
Echo !lastDate:~6,2!.!lastDate:~4,2!.!lastDate:~0,4!
Pause>Nul


Упс... Опоздал. :)

ferget
26-05-2011, 08:59
а часы и минуты как добавить?

все разобрался

sov44
07-06-2011, 23:10
Подскажите, почему не работает скрипт с указанием папки поиска?

@Echo Off
:: Обрабатываемая папка
Set Folder=h:\XPSP3\FINISH\I386\SVCPACK

for /f "delims=" %%d in ('dir/b/od "%Folder%\*.CA_"') do set "$d=%%~td"
echo %$d:~,10%

pause>nul

ferget
07-06-2011, 23:21
вот так работает

@Echo Off
:: Обрабатываемая папка
Set Folder=h:\XPSP3\FINISH\I386\SVCPACK

for /f "delims=" %%d in ('dir /b/s/a-d "%Folder%\*.CA_"') do set "$d=%%~td"
echo %$d:~,10%

pause>nul

sov44
07-06-2011, 23:44
ferget, скрипт заработал, но как ни странно, показывает не самую позднюю дату, по сравнению со скриптом gora

ferget
07-06-2011, 23:51
попробуйте /od добавить

sov44
17-01-2012, 23:28
Не могу понять, почему не работает отображение максимальной даты. Подскажите, что не так?

@echo off
SetLocal enabledelayedexpansion

set tt2=%~dp0Msp
for /f "delims=" %%d in ('dir /b /od "%tt2%\*.msp"') do set "$d=%%~td"
Echo %$d:~,10%
pause

sov44
18-01-2012, 15:19
Никто не хочет объяснить, почему не работает скрипт постом выше?

gora
18-01-2012, 15:44
sov44, добавьте ключ /s в строку после dir.

sov44
18-01-2012, 16:13
gora, огромное спасибо, всё сработало!




© OSzone.net 2001-2012