Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата miraxgroup:
пусть будет “|” »
Не будет. Этот спецсимвол имеет вполне определённый смысл для интерпретатора команд пакетных файлов.

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sDestFolder=%~1
set sTemplate=%~2

if not defined sDestFolder (
	echo Not defined destination folder.
	call :Usage
	exit /b 1
)

if not defined sTemplate (
	echo Not defined template for find.
	call :Usage
	exit /b 2
)

if not exist "%sDestFolder%\." (
	echo Can't find destination folder [%sDestFolder%].
	exit /b 3
)

:Repeat
for /f "usebackq delims=" %%i in (
	`dir /b /s /a:-d "C:\АЛФАВИТ\*.*" 2^>nul ^| findstr.exe /i /r /c:"%sTemplate%"`
) do >nul copy "%%~i" "%sDestFolder%\"

shift /2
set sTemplate=%~2
if defined sTemplate goto :Repeat

endlocal
exit /b 0

:Usage
	echo Usage: %~0 ^<Destination folder^> ^<Template^> [^<Template^> ...]
	exit /b 0
Вызов пакетного файла — сначала результирующая папка, затем шаблоны для команды «findstr.exe». Для Вашего примера:
Код: Выделить весь код
Script.cmd "C:\РЕЗУЛЬТАТЫ\ПМ-00001" 20002 30003

Отправлено: 00:07, 20-08-2014 | #2