|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск строки в файлах *.xml с кодировкой 65001 (UTF-8) без BOM |
|
CMD/BAT - Поиск строки в файлах *.xml с кодировкой 65001 (UTF-8) без BOM
|
Новый участник Сообщения: 6 |
Нужна помощь в решении задачи.
Имеется папка с файлами xml с кодировкой 65001 (UTF-8) без BOM в которых есть строки х912хм, х812хх, л845ка и т.д. Все эти строки я записал в папку 1.txt Теперь код программы, который берет строку из файла 1.txt и сверяет её на наличие в файлах xml, если такая строка имеется, то перенести этот файл в другую папку. @echo off set "list=D:\12345678\1.txt" set "from=D:\12345678" set "to=D:\12345678\sort" for /f "usebackq delims=" %%i in ("%list%") do ( for /f "delims=" %%j in ('findstr/ilmc:"%%i" "%from%\*.xml"') do ( for /f "delims=" %%k in ('2^>nul dir/a-d/b "%from%\%%~nj.*"') do ( if "%%~nk" equ "%%~nj" move/y "%from%\%%k" "%to%\" ) ) ) pause exit/b Данный код программы не работает и я не могу решить ее, хотя если я в файле 1.txt оставлю только цифры, то код программы находит строку и переносит файл. |
|
Отправлено: 00:15, 03-04-2015 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off set "list=D:\12345678\1.txt" set "from=D:\12345678" set "to=D:\12345678\sort" for /f "usebackq delims=" %%i in ("%list%") do ( for /f "delims=" %%j in ('2^>nul dir/a-d/b "%from%\*.xml"') do ( for /f %%k in ('^<"%from%\%%j" find/i "%%i"') do ( for /f "delims=" %%l in ('2^>nul dir/a-d/b "%from%\%%~nj.*"') do ( if "%%~nl" equ "%%~nj" move/y "%from%\%%l" "%to%\" ) ) ) ) exit/b Цитата 053131:
Список сохраните в кодировке UTF-8. |
|
Отправлено: 00:26, 03-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Пробовал, не ищет.
|
Отправлено: 00:52, 03-04-2015 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Отправлено: 01:27, 03-04-2015 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Я сохранял все равно не получается.
Я прикрепил файлы у кого есть время может посмотрите. |
|
Отправлено: 08:27, 03-04-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата 053131:
|
|
Отправлено: 16:17, 03-04-2015 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Что получается? просто перенести файлы?
|
Отправлено: 21:57, 03-04-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата 053131:
|
|
Последний раз редактировалось Iska, 04-04-2015 в 03:51. Причина: Грамматика: добавлена пропущенная запятая Отправлено: 00:01, 04-04-2015 | #8 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Команда "FIND" в файлах в кодировке UTF-8 "копается", но вот только непонятно, как она "относится" к наличию в этих файлах кириллицы. Поэтому попробуйте такой вариант:
@echo off set "list=D:\12345678\1.txt" set "from=D:\12345678" set "to=D:\12345678\sort" powershell "gci '%from%' -filter '*.xml'|%%{$x=$_.basename;gc $_.fullname|%%{$y=$_;gc '%list%'|%%{if($y.contains($_)){[array]$z+=$x;clv x}}}};$z|%%{mi ('%from%\'+$_+'.*') '%to%'}" exit/b 0 . |
Отправлено: 18:49, 04-04-2015 | #9 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Georgio, я извиняюсь, у меня все получилось, я не внимательно посмотрел код который вы написали, он прекрасно работает, также код через оболочку powershell работает, даже чуть быстрее.
Большое спасибо Вам. :-) |
Отправлено: 01:24, 05-04-2015 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Как с помощью JS изменить кодировку документа на utf-8 без bom ? | dark-------13 | Скриптовые языки администрирования Windows | 7 | 16-10-2013 07:59 | |
CMD/BAT - Поиск и удаление строки в такестовых файлах одного каталога | DmAv2k9 | Скриптовые языки администрирования Windows | 6 | 18-09-2013 01:05 | |
CMD/BAT - [решено] Вставить имя файла в текстовый файл (UTF-8 without BOM) | Jahnhoy | Скриптовые языки администрирования Windows | 11 | 19-09-2011 17:39 | |
[решено] Поиск <строки> в XML | semiono | AutoIt | 28 | 17-11-2010 19:53 | |
CMD/BAT - [решено] Проблема с chcp 65001 (utf-8) в батнике | volk1234 | Скриптовые языки администрирования Windows | 3 | 06-10-2009 17:06 |
|