CMD/BAT - [решено] Копирование файла по условию его содержимого

Ответить
Аватара пользователя
XSubZero

CMD/BAT - [решено] Копирование файла по условию его содержимого

Сообщение XSubZero »

Здравствуйте, возникла такая проблема:

Ежедневно в папку приходят файлы порядка 20 штук, интересует только один файл, внутри которого есть текст "ED211", его необходимо скопировать в папку с:\temp.

То есть автоматизировать ручной процесс сначала поиска этого файла, затем последующего копирования.

Помогите реализовать данный скрипт.
Аватара пользователя
XSubZero

Re: CMD/BAT - [решено] Копирование файла по условию его содержимого

Сообщение XSubZero »

Разобрался сам, на всякий случай выложу код, может кому и пригодится:

Сам файл назван 1.bat , в нем я задаю маску, поэтому в конце он удаляется из каталога назначения.

Листинг:



cls

@echo off

Set Source=C:\0

Set Dest=C:\1

Set Str=ED211



For %%I In ("%Source%\*") Do (

Find "%Str%" "%%I" >nul

If ErrorLevel 1 (

Echo %%~nxI - no matches in file



) Else (

Echo %%~nxI - matches found

copy /Y "%%I" "%Dest%"

)

)

del c:\1\1.bat

pause
Аватара пользователя
hAUS

Re: CMD/BAT - [решено] Копирование файла по условию его содержимого

Сообщение hAUS »

c:\dir\20120516\ - входная директория с 20 файлами, среди которых есть ED211

с:\temp\ - директория назначения для найденного ED211



rem Копирование файла выписки из лицевого счёта

@echo off

::Получаем текущую дату в формате YYYYMMDD

set date=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%

::Находим выписку из лицевого счёта, зная что в файле содержится текст ED211

For /F "Delims=" %%I In ('Findstr /L /I /M /C:"ED211" \\srv\archive\in\%date%\*.*') Do (

Echo %%~nxI

::Копируем переименовав

Copy "%%~I" с:\temp\propazha.vip >nul

)
Аватара пользователя
XSubZero

Re: CMD/BAT - [решено] Копирование файла по условию его содержимого

Сообщение XSubZero »

hAUS, спасибо большое , так действительно более правильно!!!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»