Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Можно ли найти файлы созданные за сегодняшний день и дать отчет о них (http://forum.oszone.net/showthread.php?t=314013)

ufooo 18-04-2016 20:44 2627609

Можно ли найти файлы созданные за сегодняшний день и дать отчет о них
 
Можно ли с помощю, (.bat) файла найти файлы созданные за сегодняшний день в директории: (%Systemdrive%)- и в формате, (Report.txt) на рабочем столе дать отчет о них.
Если можно напишите, (.bat) скрипт.

greg zakharov 18-04-2016 21:44 2627622

Код:

@echo off
  setlocal
    set "fld=%systemdrive%\" % rem : начальная точка сканирования
    set "log=C:\logs\%date:.=%.log" % rem : куда пишется лог
    if exist "%log%" del /f /q "%log%"
    <nul set /p "processing=Standby..."
    rem сперва ищем нужные файлы в корне
    for /f "tokens=3,*" %%i in (
      'dir /tc "%fld%" ^| findstr /rc:"^%date%"'
    ) do echo:%%~fj>>"%log%"
    rem далее просматриваем все подкаталоги
    for /f "tokens=*" %%i in ('dir /ad /s /b "%fld%"') do (
      pushd "%%~i"
        for /f "tokens=4,*" %%j in (
          'dir /tc ^| findstr /rc:"^%date%"'
        ) do echo:%%~fj>>"%log%"
      popd
    )
  endlocal
exit /b


ufooo 18-04-2016 22:13 2627625

Скрипт работает- спасибо.

greg zakharov 18-04-2016 22:25 2627630

...

ufooo 18-04-2016 22:51 2627636

Если в названии файла два или больше, слов тогда в, (.лог) файле пишется одно, первое слово найденного файла. И без разширения.
Например найденный файл, (Win Security.txt) отображается как: (Win).

megaloman 19-04-2016 00:27 2627649

Код:

@Echo off
cls

Set "Where=%systemdrive%"

Set "Log=%~nx0.log"
Del "%Log%" 2>nul

Set "DT=%Date%"
Set "DTX=%Date:~3,2%-%Date:~0,2%-%Date:~6,4%"

SetLocal EnableExtensions EnableDelayedExpansion

for /f "usebackq Delims=" %%i in (`xcopy "%Where%\*.*" \ /D:%DTX% /H /L /S`) Do (
        Set "Fold=%%~dpi"
        for /f "usebackq Delims=" %%f in (`dir "%%i" /A /T:C 2^>nul`) Do (
                Set "Str=%%f"
                If "!Str:~0,10!"=="%DT%" (
                        If Not "!Fold!"=="!Fold1!" Echo ---- !Fold! >>"%Log%" 
                        Echo %%f  >>"%Log%"
                        Set "Fold1=!Fold!"
                ) 
        )
)

Ограничение: скрипт не должен находиться на %systemdrive%
Предполагается, что формат даты в системе дд.мм.гггг, в противном случае необходимо корректировать формирование переменной DTX для работы xcopy

ufooo 19-04-2016 14:14 2627787

megaloman!
"скрипт не должен находиться на %systemdrive%" - Ok!
Но скрипт не сканирует- он в консоле пишет: ( Invalid Parameter - /D:6. -20-4.19 ).

Georgio 19-04-2016 14:35 2627794

Код:

@echo off

>"%USERPROFILE%\Desktop\Report.txt" 2>nul (
 for /f "delims=" %%i in ('dir/a-d/b/s "%SystemDrive%\*"') do @(
  dir/a/tc "%%i"| >nul findstr/bl %date%&& echo %%i
 )
)

exit/b


megaloman 19-04-2016 14:56 2627805

ufooo, В каком формате в системе настроена дата? Сделайте в командной строке Echo %Data%

ufooo 19-04-2016 20:49 2627884

Georgio
Скрипт сканируе, но ничаго не отображает.

Iska 19-04-2016 21:05 2627887

Цитата:

Цитата ufooo
Скрипт сканируе, но ничаго не отображает. »

И не должен. Поищите на Рабочем столе (если у Вас Vista и выше) файл «Report.txt».

ufooo 20-04-2016 01:21 2627922

Цитата:

Цитата Iska
Поищите на Рабочем столе (если у Вас Vista и выше) файл «Report.txt». »

Что за шутки, и причем тут файл, (Report.txt), он мне создается там где надо- но в консоли всегда процесс виден...
Процесс сканирования долгий, и было бы интересно понаблюдать за ним.

Iska 20-04-2016 01:49 2627924

Там особо не за чем наблюдать, основной процесс идёт в «dir/a-d/b/s "%SystemDrive%\*"», вывод которой затем подвергается разбору.


Время: 20:02.

Время: 20:02.
© OSzone.net 2001-