![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование текста из другога файла в определённую строчку |
|
|
CMD/BAT - [решено] Копирование текста из другога файла в определённую строчку
|
Новый участник Сообщения: 8 |
Здравствуйте.
Решила написать себе небольшой скрипт по работе с текстом, но не хватает знаний. ssed.exe -e "4,703d" "D:\compilation\template\Web Site\Site.xml" > "D:\compilation\template\Web Site\output.xml" del "D:\compilation\template\Web Site\Site.xml" rename "D:\compilation\template\Web Site\output.xml" Site.xml Как можно вставить многострочный текст (порядка 800 строк) из другого файла в известный номер строки? Грубо говоря, взять один файл и перенести всё что там есть в другой файл в номер строки начиная с 4, при этом сместив текст в исходном, но не удаляя его. Пример кода текста
|
|
Отправлено: 13:42, 28-05-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать sweetpleasure, WSH Вам подойдёт?
|
Отправлено: 13:56, 28-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Например, как-то так:
@Echo Off SetLocal EnableDelayedExpansion Set File1=source1.txt Set File2=source2.txt Set TargetLine=4 Set Output=out.txt Set i=0 For /F "usebackq delims=" %%A In ("%File1%") Do ( Set /A i+=1 Echo.%%A>>"%Output%" If !i!==%TargetLine% ( For /F "usebackq delims=" %%A In ("%File2%") Do (Echo.%%A>>"%Output%") ) ) |
Отправлено: 13:57, 28-05-2012 | #3 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Цитата Anonymоus:
Цитата Iska:
Я просто думала, что на ssed так же просто, как и удалить, можно вставить текст. |
||
Отправлено: 14:02, 28-05-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 15:12, 28-05-2012 | #5 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать А где можно задать номер строки, с которой начинать, а также файл с которого берём и куда вставляем?
Я образно сказала с 4... а так таких вставок будет несколько. Я просто продублирую скрипт. Если я правильно поняла, то вот эта строка WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file> <Destination file> <Line number for insert>" Так? |
Последний раз редактировалось sweetpleasure, 28-05-2012 в 15:30. Отправлено: 15:24, 28-05-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Запускаете командную строку, в ней пишете:
cscript.exe //nologo "<Путь\SomeScript.vbs" "Путь\Файл, содержимое которого надо вставить.xml>" "<Путь\Файл, в который надо вставить содержимое первого файла.xml>" <Номер строки, начиная с которой будет вставлено содержимое первого файла> cscript.exe //nologo "c:\My Scripts\SomeScript.vbs" "C:\Песочница\0009\Source.xml" "C:\Песочница\0009\Destination.xml" 4 P.S. Пример рассчитан на одну вставку за раз. |
Отправлено: 15:35, 28-05-2012 | #7 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Огромное спасибо!
А можно же вставлять в середину bat? т.е. выполняется bat, доходит до строки останавливается, выполняет скрипт, а после продолжает выполняться bat. Так ведь будет работать? |
Отправлено: 15:51, 28-05-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать sweetpleasure, можно. Работать будет.
|
Отправлено: 17:03, 28-05-2012 | #9 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Всё отлично работает!
Я хотела бы ещё уточнить, возможно ли запустить bat, перетащив на него файл (drag and drop)? Я использую он работает, когда только файл zip рядом с bat-файлом...конечно можно прописать путь и тогда он начнёт работать из прописанной директории и при этом будет распаковывать все zip в этой директории. Можно прописать название zip, но архивы имеют разные имена. Пробовала даже в Bat To Exe Converter делать exe, но всё равно не получается перетаскиванием нужного файла на ярлык запустить его обработку. Если я верно понимаю, то нужно вместо * вставить какое-то значение, которое будет передаваться при перетаскивании объекта. Нашла вот такой код, но не знаю насколько он эффективен не решилась экспериментировать с shell32.dll |
Последний раз редактировалось sweetpleasure, 28-05-2012 в 19:55. Отправлено: 19:43, 28-05-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Поиск и копирование текста из файла | KaKTuZ49 | Скриптовые языки администрирования Windows | 2 | 03-11-2011 13:38 | |
[решено] Записать данные из ИНИ файла в одну строчку | Centrinar | AutoIt | 1 | 18-03-2011 00:34 | |
Как с помощью FileReadLine прочитать последнюю строчку файла? | sashadeg | AutoIt | 10 | 01-02-2010 21:33 | |
CMD/BAT - [решено] Как прочесть из файла .txt только первую строчку текста. | Sdib121 | Скриптовые языки администрирования Windows | 6 | 15-08-2009 14:26 | |
копирование текста | volin | Хочу все знать | 10 | 08-01-2007 00:18 |
|