![]() |
Копирование текста из другога файла в определённую строчку
Здравствуйте.
Решила написать себе небольшой скрипт по работе с текстом, но не хватает знаний. Код:
ssed.exe -e "4,703d" "D:\compilation\template\Web Site\Site.xml" > "D:\compilation\template\Web Site\output.xml" Как можно вставить многострочный текст (порядка 800 строк) из другого файла в известный номер строки? Грубо говоря, взять один файл и перенести всё что там есть в другой файл в номер строки начиная с 4, при этом сместив текст в исходном, но не удаляя его. Пример кода текста HTML код:
<page> |
sweetpleasure, WSH Вам подойдёт?
|
Например, как-то так:
Код:
@Echo Off |
Цитата:
Цитата:
Я просто думала, что на ssed так же просто, как и удалить, можно вставить текст. |
|
А где можно задать номер строки, с которой начинать, а также файл с которого берём и куда вставляем?
Я образно сказала с 4... а так таких вставок будет несколько. Я просто продублирую скрипт. Если я правильно поняла, то вот эта строка Код:
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file> <Destination file> <Line number for insert>" Так? Код:
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ "D:\compilation\template\Web Site\put.xml" "D:\compilation\template\Web Site\output.xml" 4" |
Запускаете командную строку, в ней пишете:
Код:
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. Пример рассчитан на одну вставку за раз. |
Огромное спасибо!
А можно же вставлять в середину bat? т.е. выполняется bat, доходит до строки Код:
cscript.exe //nologo "c:\My Scripts\SomeScript.vbs" "C:\Песочница\0009\Source.xml" "C:\Песочница\0009\Destination.xml" 4 |
sweetpleasure, можно. Работать будет.
|
Всё отлично работает!
Я хотела бы ещё уточнить, возможно ли запустить bat, перетащив на него файл (drag and drop)? Я использую Код:
7z x *.zip -oD:\compilation\template Пробовала даже в Bat To Exe Converter делать exe, но всё равно не получается перетаскиванием нужного файла на ярлык запустить его обработку. Если я верно понимаю, то нужно вместо * вставить какое-то значение, которое будет передаваться при перетаскивании объекта. Нашла вот такой код, но не знаю насколько он эффективен Код:
Suddenly the drag-drop has stopped working. How to fix this problem? |
sweetpleasure, батник и так прекрасно распознает drag-n-drop, полный путь к файлу передается в переменной %1. Проблема в другом, батник стартует с рабочей директорией в профиле пользователя, что очень не удобно, если обвязка (архиватор, etc.) не прописана в Path.
В этом примере показано, как сменить рабочую директорию на ту, в которой находится батник, или ту, в которой находится перетягиваемый файл Код:
@Echo Off |
Понятно, вернее ничего не понятно)
А как это применить в моей ситуации? Код:
@Echo Off |
Цитата:
|
Цитата:
Цитата:
|
Для варианта, когда 7z лежит рядом с батником
Код:
@Echo Off |
Ураа) Заработало, большое спасибо!
|
Время: 06:47. |
Время: 06:47.
© OSzone.net 2001-