![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сортировка файлов взависимости от содержимого |
|
CMD/BAT - Сортировка файлов взависимости от содержимого
|
![]() Новый участник Сообщения: 15 |
Всем привет, уважаемые форумчане! С bat знаком постольку-поскольку, но возникла необходимость его применения. Буду благодарен, если поможете решить одну задачку!
Смысл такой: допустим, что в папку C:\in падает большое кол-во файлов *.xml в кодировке Windows-1251. В каждом из таких файлов есть строка, содержащая номер счёта, типа "НомСч="66000011112222333344"". Необходимо разделить все эти файлы на две папки C:\in\1 и C:\in\2, в зависимости от значения номера счёта. в C:\in\1 попадают - все счета, начинающиеся на 7788, 40 (исключение 408) в C:\in\2 попадают - все счета, начинающиеся на 6677, 408 Пытался что-то набросать, но возникали проблемы с кодировками и ещё с чем-то ![]() @echo off setlocal enableextensions set src=C:\in\ set in1=C:\in\1 set in2=C:\in\2 if not exist "%in1%" md "%in1%" if not exist "%in2%" md "%in2%" for /F "delims=" %%A IN ('findstr /M /C:".*НомСч=\"6677.*" "%src%\*.*"') DO copy "%%~A" "%in2%" for /F "delims=" %%A IN ('findstr /M /C:".*НомСч=\"408.*" "%src%\*.*"') DO copy "%%~A" "%in2%" pause |
|
Отправлено: 10:20, 20-07-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:11, 20-07-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Прикрепляю архив с двумя файлами-примерами. Т.К. речь идёт об отчётных документах банка, предварительно обезличил информацию в них...
|
Отправлено: 15:04, 20-07-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:21, 21-07-2014 | #4 |
![]() Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Блин! Спасибо, конечно. Вы просто титаническую работу проделали для моей задачи! Но у меня было пожелание сделать именно на bat. В нём бы я хоть что-то мог понять
![]() Ваш скрипт попытался использовать, но он просто удаляет файлы, поступившие на вход. Пишет "Can't load xml content from..." |
|
Отправлено: 14:09, 21-07-2014 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Mushroomhead, проверьте на тех файлах, что Вы выложили в архиве — на них работает?
|
Отправлено: 16:43, 21-07-2014 | #6 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Mushroomhead:
@echo off setlocal enableextensions set "src=C:\in" set "in1=%src%\1" set "in2=%src%\2" if not exist "%in1%" md "%in1%" if not exist "%in2%" md "%in2%" ( echo НомСч="7788 echo НомСч="40[^8] )>.tmp for /f "delims=" %%A in ('findstr /mrg:.tmp "%src%\*.xml"') do copy "%%~A" "%in1%">nul ( echo НомСч="6677 echo НомСч="408 )>.tmp for /f "delims=" %%A in ('findstr /mg:.tmp "%src%\*.xml"') do copy "%%~A" "%in2%">nul del .tmp endlocal exit /b |
|
Отправлено: 18:49, 26-07-2014 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Сбрасывается сортировка файлов | Atamiq | Microsoft Windows 8 и 8.1 | 3 | 25-06-2014 16:37 | |
Разное - сортировка файлов в библиотеках | kekeke-kun | Microsoft Windows 7 | 3 | 16-07-2012 01:24 | |
Любой язык - Копирование текстовых файлов в зависимости от их содержимого | Brigadir_33 | Скриптовые языки администрирования Windows | 1 | 28-02-2012 08:02 | |
CMD/BAT - [решено] Сортировка файлов с учетом содержимого | Grammaton Cleric | Скриптовые языки администрирования Windows | 1 | 16-11-2011 08:43 | |
CMD/BAT - Сортировка файлов | kt626 | Скриптовые языки администрирования Windows | 2 | 28-03-2009 10:47 |
|