Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] findstr помощь

Ответить
Настройки темы
CMD/BAT - [решено] findstr помощь

Пользователь


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

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


Граждане!!
столкнулся с проблемой:

суть:
получить все *.xml файлы в данной папке, отвечающие критериям, в переменную (ну или сразу обработать данный файл)

как делаю:
Код: Выделить весь код
findstr /m "<Cadastral_Block CadastralNumber=" "*.xml"
результат на экран выводиться как мне нужно, но вот как это в переменную загнать?
каким образом For /F подключить ?

Отправлено: 13:25, 08-04-2013

 

Ветеран


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

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


Цитата firstarey:
Iska, выбираются то все, а имя берем одно, с ним работаем, перемещаем, потом снова выбираем все...
в данном варианте ЭТО работает. в моем случае актуальна фраза "плохой код, который работает, лучше чем красивый код, который не работает"
(это я к тому, что возможно Вы увидите тут какие либо не совсем рациональные пути решения) »
Вы правы, вижу. Дело не в красоте, а в ненужных костылях.

Цитата firstarey:
Привожу весь батник Файл 97239, дабы было понятней как это происходит. »
«Страница не найдена».

Отправлено: 10:56, 11-04-2013 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


Цитата Iska:
«Страница не найдена». »
странно, у меня предлагает сохранить архив.

еще разок:
Файл 97252
и на всякий случай:
http://anonymousdelivers.us/44622

Последний раз редактировалось firstarey, 06-03-2014 в 07:23.


Отправлено: 11:12, 11-04-2013 | #12


Ветеран


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

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


Цитата firstarey:
еще разок: тест.zip »
Теперь доступен.

Отправлено: 13:24, 11-04-2013 | #13


Пользователь


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

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


Iska, есть идеи ?

Отправлено: 13:57, 12-04-2013 | #14


Ветеран


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

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


firstarey, моя идея была изложена выше несколько раз: нет нужды в «ручном» цикле по «goto :poisk», поскольку «findstr.exe /m "<Cadastral_Block CadastralNumber=" "*.xml"» и так выбирает все потребные xml-файлы.

Отправлено: 15:21, 13-04-2013 | #15


Ветеран


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

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


Подскажите, как избавится от сообщения "FINDSTR: // пропускается" http://savepic.org/3898391.jpg
Код: Выделить весь код
@echo off

:: Папка, в которой нужно искать
set "sDir=c:\2\евеве"

:: Параметрами проставить нужные расширения
for /r "%sDir%" %%a in (.) do call:1 "%%~dpna" zip
pause
goto:eof
 
:1
if not "%2"=="" (
for /f "tokens=1* delims=:" %%i in (
   'dir /b /a-d "%~1\*.%2" 2^>nul ^| findstr /i/n "\.%2$" ^| findstr /vc:"%~n1" 2^>Nul'
) do echo ren "%~1\%%j" "%~n1-%%i.%2" 2>nul
shift /2
goto 1
)

Отправлено: 21:18, 03-07-2013 | #16


Ветеран


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

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


Необходимо вывести имена файлов, начинающиеся с цифры или с буквы в нижнем регистре?
Код: Выделить весь код
for /f "delims=" %%a in ('dir /b /s /a-d "%windir%\Installer\*" ^|findstr /rc:"[0-9]*.msp"') do echo %%a

Последний раз редактировалось sov44, 09-08-2013 в 16:28. Причина: правка ТЗ


Отправлено: 16:21, 09-08-2013 | #17


Ветеран


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

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


Код: Выделить весь код
/rc:"[0-9]*.msp"
означает: найти строки, содержащие любое количество подряд идущих цифр, за ними один любой символ, затем символы «msp».

Отправлено: 18:56, 09-08-2013 | #18


Ветеран


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

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


Цитата Iska:
означает: найти строки, содержащие любое количество подряд идущих цифр, за ними один любой символ, затем символы «msp». »
Фактически выводит имена файлов, начинающихся как с цифр, так и с букв.
Iska, как насчёт решения ТЗ в посте 17?

Отправлено: 19:26, 09-08-2013 | #19


Ветеран


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

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


Цитата sov44:
Необходимо вывести имена файлов, начинающиеся с цифры или с буквы в нижнем регистре »
sov44, для Вашего случая — например, так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "delims=" %%i in (
	'dir /b /s /a:-d "*.*" ^| findstr.exe /r /c:"^.*\\[0-9a-z][^\\]*\.[^\.\\]*$"'
) do echo %%i

endlocal
exit /b 0
Цитата sov44:
Фактически выводит имена файлов, начинающихся как с цифр, так и с букв. »
А что Вы хотели — маска ищет в строках, а у Вас строки — полные пути, а не только имена файлов.

И, ещё например, такое:
Код: Выделить весь код
D:\bla-bla-bla Вася Пупкин 123 ха-ха 3рmsp.exe
вполне уложится в указанную Вами маску.

Последний раз редактировалось Iska, 09-08-2013 в 19:45.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:38, 09-08-2013 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] findstr помощь

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как пользоваться ключем /A команды Findstr Dragokas Скриптовые языки администрирования Windows 7 07-09-2013 01:23
Вопрос - помощь корвин Ноутбуки 0 12-03-2013 14:44
CMD/BAT - [решено] Помогите с findstr dima05605 Скриптовые языки администрирования Windows 9 09-12-2012 19:50
CMD/BAT - [решено] Помогите с findstr dima05605 Скриптовые языки администрирования Windows 15 28-10-2012 19:49




 
Переход