Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Перемещение строк (http://forum.oszone.net/showthread.php?t=262909)

41275jur 21-06-2013 17:45 2171809

Перемещение строк
 
Доброе время суток. Помогите, пожалуйста, с написанием батника.
Есть много текстовых файлов, название которых разное, например: 5-axe.txt, AACuteFTP Pro.txt, AADate & Time.txt, B-dic_Search_Replace_48.txt, Browser Hijack Recover2.0.txt и т.д. Каждый файл состоит из таких строк (строки разные):

Код:

%Mor%m            %Mили%m
    and            и
  - \tHide/show selection size (pixels)\nTab\tSwitch dragged corner\r  S\tSwitch shape (rect., rounded, ellipse)          - \tСпрятать/показать размер выбранного (пиксели)\nTab\tВыключить выбранный угол\r  S\tSwitch shape (rect., rounded, ellipse)
&Do Not Disturb\tNo Calls Accepted          &Не беспокоить\tНе принимать звонки
  (Default)          (по умолчанию)
  + \tHide/show mouse pointer          + \tСпрятать/показать курсор
  Address:\r\n          Адрес:\r\n
  Cancel          Отменить
  Company:          Организация:
\n\tSearching for images...        \n\tПоиск рисунков...
#Digits:        #Цифры:
&>>        &>>
&0        &0
&1        &1
&Close        3aкpытиe
C&lose        З&акрыть
И т.д

Цель: переместить со всех текстовых файлов строки, где есть слова, например ("Cancel") или по определенному предложению (\tHide/show mouse pointer). При этом в оригинальном файле эти строка должна удаляться, а в файле, например (file.txt) прописываться.
В моем батнике строки перемещаются в файл file.txt, но из оригинала не удаляются

Код:

type *.txt | findstr /i /c:Default > temp.txt
rename temp.txt file.txt

А предложение не перемещается, и после обработки нескольких файлов получается вот это:

Код:

You must first save the image as a Windows bitmap before you can use it as wallpaper. If desired, you can change this file's path and name by clicking the Browse button, below.  Or you can accept the default name.        Во-первых, вы должны сохранить картинку, как BMP (до ее установки на Рабочий стол). Если необходимо, вы можете сменить путь файла и имя кликнув ниже по кнопке Просмотра. Или примите имя по умолчанию.
Your default MAPI store could not be opened.        Не удается открыть хранилище сообщений MAPI по умолчанию.
  (Default)          (РїРѕ умолчанию)
&Check the account(s) for which you would like to use signature '%s'. Only one signature may be selected for an account, and accounts with no signature will use the default signature.        Р’&ыберите учетные Еаписи, для которых следует испольЕовать РїРѕРґРїРёСЃСЊ '%s'. Для каждой учетной Еаписи РјРѕР¶РЅРѕ Еадать только РѕРґРЅСѓ РїРѕРґРїРёСЃСЊ. Если РѕРЅР° РЅРµ Еадана, то будет выбрана РїРѕРґРїРёСЃСЊ, испольЕуемая РїРѕ умолчанию.
&Default        РџРѕ умолчанию
&Default        &РџРѕ умолчанию
&Default        Умолчание

Как исправить это?

Не знаю, наверно я спрошу не в тему, но раз я уже здесь, то задам еще несколько вопросов.
Я сначала хотел объединить файлы в один и с этого файла перемещать строки, но возникли несколько ошибок:
1. последняя строка первого файла и первая строка следующего файла прописываются в одну строчку. Объединял при помощи этого:

Код:

copy /b *.txt  file.txt
Нашел

Код:

@echo off
echo:>CrLf.txt
copy /b 1.txt + CrLf.txt + 2.txt final.txt
del /q CrLf.txt


и


@echo off
(
    type 1.txt
    echo:
    type 2.txt
)>final.txt

Здесь объединяет нормально, но можно обработать только два файла.

Мне подсказали

Код:

for %%i in ("*.txt") do >>"%%i" echo.
copy /a "*.txt" "some.tmp" && ren "some.tmp" "some.txt"

Здесь объединяет, но добавляет п»ї перед первой строкой следующего файла.
2. И появляются каракули вместо русских букв как показано выше.

41275jur 24-06-2013 21:21 2173597

Доброе время суток.
Подскажите или помогите, пожалуйста.
С копированием строк в другой файл я немного разобрался.
Код:

type file.txt | findstr /i /c:"The following required field(s) are empty :\r\n" > file1.txt
А вот с удалением у меня не получается. Строку, которую надо удалить удаляет, но также удаляет и строки, в которых есть слова The, following, required, field(s) и т.д.
Код:

type file.txt | findstr /i /v " The following required field(s) are empty :\r\n " > temp.txt
del file.txt
rename temp.txt file.txt

Где моя ошибка?

Georgio 24-06-2013 22:36 2173642

41275jur, также используйте параметр (префикс) /C::
Код:

type file.txt | findstr /i /v /C:"The following required field(s) are empty :\r\n" > temp.txt
.

41275jur 25-06-2013 07:42 2173754

Georgio, Спасибо за помощь. Получилось.


Время: 15:59.

Время: 15:59.
© OSzone.net 2001-