![]() |
FINDSTR работа с найденым файла
Доброго времени суток!
Подскажите пожалуйста как решить такую задачу, никак не могу найти решение. Есть батник, который ищет файл по параметрам: @echo off Setlocal EnableDelayedExpansion @echo zadaem param set sm=239 rem ищем findstr /s /m "!sm!" C:\b1\test1\*.* Дальше нужно скопировать найденный файл, но никак не могу найти как. Пробовал делать так: findstr /s /m "!sm!" C:\b1\test1\*.* > C:\b1\temp1\t1.txt В текстовый док копируется полный путь к файлу, но опять же как его достать и этот файлик скопировать никак не могу найти. Если кто знает подскажите пожалуйста. Заранее спасибо. |
Код:
For /F "delims=" %%A In ('findstr /s /m "!sm!" C:\b1\test1\*.* ') Do ( Copy "%%~A" "Куда копировать") |
Спасибо! Все работает!
Не могли бы прокомментировать код, а то не совсем понимаю принцип работы. |
a508475, FindStr с ключом /M выводит только имя (и полный путь, в случае использования одновременно с /S) файла, в котором найдена искомая строка. С помощью цикла For с пустым разделителем (это означает, что мы получаем входящую строку "как есть") это имя записывается во временную переменную внутри цикла (%%A) и далее копируется с помощью Copy. Советую почитать справку For /?, там всё гораздо более подробно описано.
|
findstr этот шаг я сам делал, мне непонятно как раз с for
%%А - это переменная? в мануале к батнику написано что переменные обозначаются между знаками ! - например !j! /f "delims=" что делает? делимс это какая то синтаксическая константа? |
Цитата:
Цитата:
Цитата:
|
Время: 12:48. |
Время: 12:48.
© OSzone.net 2001-