Компьютерный форум 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=282069)

bellagio 10-05-2014 18:22 2349677

распределение файлов по папкам по списку
 
Здравствуйте.

Собственно со следующей задачкой. Нужно распределить файлы по папкам, в зависимости от данных указанных в логе. В логе присутствует - полный путь до файла, и классификатор куда, какой файл нужно положить. Пример лога:

Код:

C:\Use\1\mlog\file.zip - archive
*C:\Use\1\mlog\file.zip\1.txt - text
**C:\Use\1\mlog\file.zip\i.exe - po
***C:\Use\1\file.zip\F.dll - dll

Но есть одно условие. В логе начальный файл, начинается с пути, а если он в архиве, в логе пишется, какие файлы в архиве. И если файл архивный, то лог начинается, с символов *, **, **, ****, *****. Так вот получается мы берем только первый файл, а все строки с указанными в начале символами игнорируем.

получается в папку Archive мы переносим только file.zip остальные не трогаем.

Но нужен лог, если файл не существует по указанному пути, или же недоступен, то выносить его (файла) полную строку из начального лога, в лог ошибок.

Georgio 11-05-2014 13:14 2349863

Как-то так:

Код:

@echo off
setlocal enabledelayedexpansion
(
date /t
time /t
for /f "usebackq eol=* delims=" %%i in ("somelog.log") do (
 set string=%%i
 for /f "tokens=1,2 delims=#" %%j in ("!string: - =#!") do (
  if exist "%%j" (
  md "%%k" 2>nul
  move "%%j" "%%k">nul|| (
  echo %%j
  )
  ) else (
  echo %%j
  )
 )
)
echo.
)>>"errors.log"
endlocal
exit /b

.


Время: 07:54.

Время: 07:54.
© OSzone.net 2001-