PDA

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


aRHangel2013
14-11-2013, 14:17
Доброе время суток!!
Помогите пожалуйста написать BAT файл который в сетевой папке ищет файлы с определенным текстом, а потом их печатает. Файлы появляются в той папке в течении всего рабочего дня т.е. нужно через какое нибудь время перепроверять папку на наличие новых файлов.
Сегодня мои ненасытные юзеры хотят еще и выборочно печатать доки.
У меня есть сегодняшняя прога и на просторах интернета нашел прогу, которая реализет выборку файлов, но я не могу их объединить.

Текст который нужно искать (в них есть пробел)
ABC 101
ABC 202
etc

прога 1 - печатает все новые файлы в папке

@echo Off
cls

set $dd=%DATE:~0,2%
set $mm=%DATE:~3,2%
set $yyyy=%DATE:~6,4%
set Share="y:\"%$yyyy%"\"%$mm%"\"%$dd%"\ToPrint\*.prt-*"

Set Index=%~n0.EXCLUDE

if Not Exist %Index% Echo %Index% >%Index%

Call :Printer %Share%

GoTo:Eof
:Printer

FOR /F "usebackq delims=" %%i IN (`xcopy /L /S /EXCLUDE:%Index% %1 "%Tmp%\" 2^>nul^`) DO (
If Exist "%%i" (
notepad /P "%%i"
echo %%i >>%Index%
)
)

прога 2 - ищет определенное слово или слова и кудато их перелаживает
for /f "usebackq delims=" %i in (`findstr.exe /m /i /c:"ABC 101" "%Share%"`) do @move "%i" "c:\2\"

я предпологаю что искомые слова можно указать так ну и указать в проге 2:
set "words=(ABC 101|ABC 202|ABC 333)"
Помогите объединить функционал прог.

Molchune
15-11-2013, 08:34
Ну вот как то так

@echo Off
cls

set $dd=%DATE:~0,2%
set $mm=%DATE:~3,2%
set $yyyy=%DATE:~6,4%
set Share="y:\"%$yyyy%"\"%$mm%"\"%$dd%"\ToPrint\*.prt-*"
set Worlds="ABC.101 ABC.200"

Set Index=%~n0.EXCLUDE

if Not Exist %Index% Echo %Index% >%Index%

Call :Printer %Share%

GoTo:Eof
:Printer

FOR /F "usebackq delims=" %%i IN (`xcopy /L /S /EXCLUDE:%Index% %1 "%Tmp%\" 2^>nul^`) DO (
If Exist "%%i" (
for /f "usebackq delims=" %%a in (`findstr.exe /m /i %Worlds% %%i`) do (
REM для печати echo %%a заменить на notepad /P "%%a"
echo %%a
echo %%a >>%Index%
)
)
)


для печати echo %%a заменить на notepad /P "%%a" (1 раз)

aRHangel2013
15-11-2013, 11:54
Спасибо!!!




© OSzone.net 2001-2012