Вставка текста
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Вставка текста
Есть около 600 текстовых файлов, нужно вставить в конце каждого файла один и тот же текст.
Каким образом можно это реализовать?
Каким образом можно это реализовать?
Текст большой? Можно бат-файлом, если не очень большой.
Создать бат-файл с любым именем, перетащить на панель инструментов, в параметрах прописать %WL, выделить на панели все эти 600 файлов и нажать кнопку.
Здесь echo. (без пробела) выводит переход на новую строку, echo с текстом выводит текст, а >>%2 говорит, что текст нужно дописать в конец файла (если знак > только один, то файлы будут очищаться перед выводом текста, что нам не нужно).
Если дописывать нужно реально много, проще будет брать дописываемые данные из другого файла:
В параметрах кнопки указать %WL "X:\Путь\К\Файлу\С\Дописываемым\Текстом.txt". И не забывать, что если первая строка этого файла не пустая, то текст может дописываться не с новой строки.
Разумеется, перед применением ко своим файлам рекомендую потренироваться на копиях.
Создать бат-файл с любым именем, перетащить на панель инструментов, в параметрах прописать %WL, выделить на панели все эти 600 файлов и нажать кнопку.
Код: Выделить всё
@echo off
if -%1==-go goto go
if -%1==- echo Params: %%WL & pause & goto :EOF
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f"
pause
goto :EOF
:go
echo.>>%2
echo.>>%2
echo Первая строка для дописывания к файлам>>%2
echo Вторая строка для дописывания к файлам>>%2Если дописывать нужно реально много, проще будет брать дописываемые данные из другого файла:
Код: Выделить всё
@echo off
if -%1==-go goto go
if -%2==- echo Params: %%WL "X:\Path\To\File\With\Text.txt" & pause & goto :EOF
if not exist %2 echo Text file %2 not found! & pause & goto :EOF
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f" %2
pause
goto :EOF
:go
if exist %3 type %3>>%2Разумеется, перед применением ко своим файлам рекомендую потренироваться на копиях.
Последний раз редактировалось MVV Вт май 10, 2011 15:57, всего редактировалось 1 раз.
Сейчас попробую.
текст в 3 строки всего.
Добавлено спустя 8 минут 17 секунд:
Так
а если у меня текст состоит из функций, которые совпадают с функциями батника, в общем вот текст:
Перетащить на панель инструментов // не совсем понял как это делается.
текст в 3 строки всего.
Добавлено спустя 8 минут 17 секунд:
Так
а если у меня текст состоит из функций, которые совпадают с функциями батника, в общем вот текст:
Добавлено спустя 4 минуты 46 секунд:<?php add_action('wp_footer', 'mth');
function mth() { $content =' · <a href="http://xxx/" target="_blank">xxx</a> · ';
echo $content;} ?>
Перетащить на панель инструментов // не совсем понял как это делается.
- alexey65536
- Сообщения: 1056
- Зарегистрирован: Пт янв 20, 2006 10:58
- Откуда: Taganrog
Но можно извратиться и вручную замаскировать все служебные символы. 
Но что второй вариант удобнее - никто и не спорит.
Кстати, %WL в кавычках лучше.
А для TC 7.04a и младше - "%l" вместо "%WL". Но обновить до TC 7.56a тоже стоит.
Но что второй вариант удобнее - никто и не спорит.
Кстати, %WL в кавычках лучше.
А для TC 7.04a и младше - "%l" вместо "%WL". Но обновить до TC 7.56a тоже стоит.
Последний раз редактировалось MVV Вт май 10, 2011 17:05, всего редактировалось 2 раза.
Похожая задача. Модераторы, м.б. подклеить?
Ну или переименовать, потому что задача всё таки не "вставить" (в середину), а "дописать" (в конец)
vegg
для всех .txt
просто запустить батник
Ну или переименовать, потому что задача всё таки не "вставить" (в середину), а "дописать" (в конец)
vegg
для всех .txt
Код: Выделить всё
for %%a in ("d:\путь\*.txt") do type "d:\добавь меня.txt">>"%%a"vegg
vbs:
Содержимое строк указываем внутри скрипта после "FF.WriteLine".
Если в тексте содержатся кавычки, их нужно задвоить (как во второй строке примера).
vbs:
Код: Выделить всё
'=====================================================
' Добавление нескольких строк в файлы из файла-списка
' Параметры:
' {файл-список}
' Пример параметров при вызове из TC:
' %L
'=====================================================
Dim FSO, F, FF
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not .AtEndOfStream
F = Trim(.ReadLine)
If F <> "" Then
If FSO.FileExists(F) Then
Set FF = FSO.OpenTextFile(F, 8, True)
FF.WriteLine "<?php add_action('wp_footer', 'mth');"
FF.WriteLine "function mth() { $content =' · <a href=""http://xxx/"" target=""_blank"">xxx</a> · ';"
FF.WriteLine "echo $content;} ?>"
FF.Close
End If
End If
Loop
.Close
End With
Set FF = Nothing
Set FSO = Nothing
Wscript.Quit()
Если в тексте содержатся кавычки, их нужно задвоить (как во второй строке примера).
Нет, я не сплю. Я просто медленно моргаю.
Друзья, что-то у вас "глаз замылился".
Создаём файл с добавочным текстом (add) и плюсуем его к имеющемуся
COPY file.ext + add file.ext /B
Организация списка или цикла - по вкусу.
Например, если исходные файлы *.txt:
FOR %i IN (*.txt) DO COPY "%i"+add "%i" /B
при использовании в командном файле %i заменить на %%i т.е. удвоить символ %
Создаём файл с добавочным текстом (add) и плюсуем его к имеющемуся
COPY file.ext + add file.ext /B
Организация списка или цикла - по вкусу.
Например, если исходные файлы *.txt:
FOR %i IN (*.txt) DO COPY "%i"+add "%i" /B
при использовании в командном файле %i заменить на %%i т.е. удвоить символ %
- Моторокер
- Сообщения: 1517
- Зарегистрирован: Пт май 06, 2005 08:22
- Откуда: г. Пермь (читается Перьмь)
- Контактная информация:
Может удобней использовать спец. приложения, например SBReplacer?
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
ПармаСруб - строительство домов и бань в Перми
SaDim, нужно создавать временную копию обрабатываемого файла, затем копировать на место оригинала файл со вставляемым текстом и дописывать к нему созданную копию - получится, что текст добавлен в начало файла. Временную копию потом удалить.
Что-то вроде:
Перетащить батник на панель инструментов, очистить поле рабочей папки и написать в параметрах "%WL" пробел путь к файлу с вставляемым текстом:
Что-то вроде:
Код: Выделить всё
@echo off
if -%1==-go goto go
if -%2==- echo Params: "%%WL" "X:\Path\To\File\With\Text.txt" & pause & goto :EOF
if not exist %2 echo Text file %2 not found! & pause & goto :EOF
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f" %2
pause
goto :EOF
:go
if not exist %3 goto :EOF
set tmpname=%TEMP%\~tmpfile-%random%~
copy %2 "%tmpname%">nul
copy /b %3 + "%tmpname%" %2>nul
del "%tmpname%"Код: Выделить всё
"%WL" "C:\InsertText.txt"