Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование текста из другога файла в определённую строчку

Ответить
Настройки темы
CMD/BAT - [решено] Копирование текста из другога файла в определённую строчку

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте.
Решила написать себе небольшой скрипт по работе с текстом, но не хватает знаний.
Код: Выделить весь код
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, при этом сместив текст в исходном, но не удаляя его.
Пример кода текста
HTML код: Выделить весь код
<page> <name>index</name> <caption>Главная</caption> <pages /> <content> <caption>Главная</caption> <title><![CDATA[Главная страница]]></title> <position>0</position> <dateCreated>0001-01-01T00:00:00</dateCreated> <dateModified>2012-04-06T16:36:11.25+03:00</dateModified> <description>0</description> <keywords>0</keywords> <titleInBrowser>Главная</titleInBrowser> <showInHmenu>true</showInHmenu> <showInVmenu>true</showInVmenu> <showTitle>false</showTitle> </content> <serverInfo> <title><![CDATA[]]></title> <position d5p1:nil="true" xmlns:d5p1="http://www.w3.org/2001/XMLSchema-instance" /> <dateCreated>0001-01-01T00:00:00</dateCreated> <dateModified>0001-01-01T00:00:00</dateModified> <titleInBrowser /> <showInHmenu>true</showInHmenu> <showInVmenu>true</showInVmenu> <showTitle>false</showTitle> </serverInfo> </page>


Отправлено: 13:42, 28-05-2012

 

Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


sweetpleasure, батник и так прекрасно распознает drag-n-drop, полный путь к файлу передается в переменной %1. Проблема в другом, батник стартует с рабочей директорией в профиле пользователя, что очень не удобно, если обвязка (архиватор, etc.) не прописана в Path.
В этом примере показано, как сменить рабочую директорию на ту, в которой находится батник, или ту, в которой находится перетягиваемый файл
Код: Выделить весь код
@Echo Off
:: Рабочая директория. При drag-n-drop скрипт стартует с рабочей директорией
:: в %UserProfile%, что совсем не хорошо. Здесь можно выбрать, что будет являться
:: рабочей директорией: self - директория со скриптом, или target - директория с
:: перетягиваемым файлом
Set WorkDir=target

If Not "%~1"=="" (If %WorkDir%==target CD /D "%~dp1")
If Not "%~1"=="" (If %WorkDir%==self CD /D "%~dp0")

Echo Рабочая директория - [%CD%]
Echo Файл - [%~nx1]
Pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:37, 28-05-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Понятно, вернее ничего не понятно)
А как это применить в моей ситуации?
Код: Выделить весь код
@Echo Off
Set WorkDir=target

If Not "%~1"=="" (If %WorkDir%==target CD /D "%~dp1")
If Not "%~1"=="" (If %WorkDir%==self CD /D "%~dp0")

Echo Рабочая директория - [%CD%]
Echo Файл - [%~nx1]
Pause

7z x %~dp1 -oD:\compilation\template
Так получается? Я в этом вопросе новичок)

Отправлено: 20:59, 28-05-2012 | #12


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Цитата sweetpleasure:
А как это применить в моей ситуации? »
Уточняющий вопрос - 7z.exe добавлен в %Path% или находится рядом со скриптом? Имеет ли значение, какая рабочая директория у батника?

Отправлено: 21:04, 28-05-2012 | #13


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Anonymоus:
Уточняющий вопрос - 7z.exe добавлен в %Path% или находится рядом со скриптом?»
7z я скачала специально для командной строки, поэтому он лежит рядом с бат-файлом.
Цитата Anonymоus:
Имеет ли значение, какая рабочая директория у батника? »
Не совсем поняла вопрос.. что вы имеете ввиду под рабочей директорией?

Отправлено: 21:09, 28-05-2012 | #14


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Для варианта, когда 7z лежит рядом с батником
Код: Выделить весь код
@Echo Off
CD /D "%~dp0"
7z x "%~1" -oD:\compilation\template
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:14, 28-05-2012 | #15


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ураа) Заработало, большое спасибо!

Отправлено: 21:18, 28-05-2012 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование текста из другога файла в определённую строчку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход