[Цитировать]

    Albert
  • 1131
  • Стаж: 2 года 2 месяца
  • Сообщений: 121
  • Репутация:1

    [+] [-]
Достало меня эпизодически готовить большое количество документов с одним набором данных. Создал батник в котором, как черт из табакерки, в буфере обмена последовательно появляются данные из списка (текстовый файл). Данные считываются построчно. Нам нужно только нажимать в выделенном окне CMD любую клавишу на клавиатуре или правую кнопку мыши для ввода значения последующей строки в буфер. В конце списка буфер очищается и окно CMD закрывается.
Список текстовых данных для примера поместим по адресу D:\test\spisok.txt
Код:
@color 3e
@chcp 1251
@for /f "usebackq tokens=*" %%x in ("D:\test\spisok.txt") do (echo %%x| clip & @pause & cls && echo off | clip)
cls
@color 4e
@echo Готово!
@pause
Данный батник работает в Windows 7 и выше.
Если вы используете Windows XP, вы можете скачать clip.exe от Microsoft.
http://osmaster.org.ua/wp-content/uploads/2011/10/CLIP.zip
Просто сохраните файл в папке Windows.
Для корректного отражения русских символов при вставке в документ, в редакторе реестра в ветке HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage необходимо поставить в соответствие кодовой странице 1252 значение c_1251.nls
Если в окне батника отображаются кракозябры, то в свойствах окна выберите шрифт Lucida Console.


Последний раз редактировалось: Albert (2016-11-30 07:38), всего редактировалось 2 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 2 года 8 месяцев
  • Сообщений: 1495
  • Репутация:80

    [+] [-]
Albert,
Imxo, использование батника для данной цели не лучшее решение.
Он будет сбоить на спец. символах ("%<>|& и т.п.) или пропускать их.

[Цитировать]

    Albert
  • 1131
  • Стаж: 2 года 2 месяца
  • Сообщений: 121
  • Репутация:1

    [+] [-]
nikzzzz,
Возможно, спорить не буду. Но пока такого не встречал. Специально зарядил текст от какого-то батника, отработало правильно.
Было бы интересно получить решение используя данные из Word. Но наверное нет смысла.
Есть одна особенность, если вставлять данные из буфера в блокнот, то автоматически идет перевод строки.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 2 года 8 месяцев
  • Сообщений: 1495
  • Репутация:80

    [+] [-]
31908Специально зарядил текст от какого-то батника, отработало правильно.
Нужно для теста создать текст, в котором встречаются указанные символы, что-то типа такого
ouhuogug > &1 " ygygy ""
< rtdrtsytjkb | hugug %% gvgygfy % (
yffuyfu ) &&  &
и посмотреть, что он сделает с ним.

[Цитировать]

    Albert
  • 1131
  • Стаж: 2 года 2 месяца
  • Сообщений: 121
  • Репутация:1

    [+] [-]
nikzzzz
С вашим текстом действительно возникают проблемы
и если изменить код на
@chcp 1251
@for /f "usebackq tokens=*" %%x in ("D:\test\spisok.txt") do (echo "%%x"| clip & pause && echo off | clip)
то вставляются лишние кавычки.
Мне для моих задач не встречались подобные тексты со спецсимволами. Но в будущем этот момент будет учитываться.

[Цитировать]

    MBTY
  • 1499
  • Стаж: 2 года
  • Сообщений: 61
  • Репутация:1

    [+] [-]
Albert, Приветствую!
Прочел ваше сообщение на форуме Simplix
Решил помочь. Выкладываю скрипт и написанную утильку. Текстовый документ с предложенным текстом от nikzzzz обрабатывается верно.
http://rgho.st/6cg4sjGgb

[Цитировать]

    Albert
  • 1131
  • Стаж: 2 года 2 месяца
  • Сообщений: 121
  • Репутация:1

    [+] [-]
MBTY, здравствуй! Спасибо за помощь. Все работает просто замечательно. Единственно я только в батнике изменил последние строчки на
cls
@echo off |clip
exit
так как в буфере обмена оставалось последнее значение, ну и путь к своему тексту.

[Цитировать]

    MBTY
  • 1499
  • Стаж: 2 года
  • Сообщений: 61
  • Репутация:1

    [+] [-]
Albert, Не за что. Ну то ж пример. az


Показать сообщения:    

Текущее время: 25-Сен 02:00

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы