Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Как добавить в конец каждой строки <br>?

Аватара для V!RTuE

Пользователь


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

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


Надо добавить в текстовом файле в конец каждой строки <br>
Пробую так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion
SET f=%~dp0
set file=%f%ARCHIVE\Report.txt
set sym=<br>

copy nul "%temp%\tmp.tmp"
for /F "usebackq delims=" %%s in ("%file%") do (
  echo %%s%sym%>>"%temp%\tmp.tmp"
)

move "%temp%\tmp.tmp" "%file%"
pause
но ничего не получается. Я так понимаю проблема в том, что надо правильно экранировать символы < и >
Попробовал так:
Код: Выделить весь код
set sym=^<br^>
но тоже ничего не получается

Отправлено: 14:48, 11-02-2015

 

Аватара для V!RTuE

Пользователь


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

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


В общем пошел окольными путями и сделал так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion
SET f=%~dp0
set file=%f%ARCHIVE\Report.txt
set sym="<br>"

copy nul "%temp%\tmp.tmp"
for /F "usebackq delims=" %%s in ("%file%") do (
  echo %%s%sym%>>"%temp%\tmp.tmp"
)

move "%temp%\tmp.tmp" "%file%"

Set newfile=%f%ARCHIVE\Report2.txt

(For /f "usebackq delims=" %%a In ("%file%") Do (
	Set ta=%%a
	Echo !ta:"=!
))>"%newfile%"
del "%f%ARCHIVE\Report.txt"
ren "%f%ARCHIVE\Report2.txt" "Report.txt"
Может кто предложит как попроще это сделать?

Отправлено: 15:13, 11-02-2015 | #2



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

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


Ветеран


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

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


V!RTuE, А так просто не работает?
Код: Выделить весь код
@echo off
setlocal

for /f "tokens=*" %%i in (file.txt) do 1>>file.tmp echo %%i^<br^>
move file.tmp file.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:11, 11-02-2015 | #3


Аватара для V!RTuE

Пользователь


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

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


Цитата Foreigner:
V!RTuE, А так просто не работает? »
не работает, если запускаю из другой папки, в имени которой есть пробелы (h:\Тестовый К+\):
Код: Выделить весь код
@echo off
setlocal
SET f=%~dp0
for /f "tokens=*" %%i in ("%f%ARCHIVE\Report.txt") do 1>>"%f%ARCHIVE\file.tmp" echo %%i^<br^>
move "%f%ARCHIVE\file.tmp" "%f%ARCHIVE\Report.txt"
если же в строке убрать кавычки:
Код: Выделить весь код
for /f "tokens=*" %%i in (%f%ARCHIVE\Report.txt) do 1>>"%f%ARCHIVE\file.tmp" echo %%i^<br^>
то просто не найдет папку, т.к. в имени ее есть пробелы. А если нет пробелов, то будет нормально работать

P.S.: Не пойму зачем ответ Georgio удалил?
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set f=%~dp0
set file=%f%ARCHIVE\Report.txt
set "sym=<br>"

for /f "delims=" %%s in ('type "%file%"^& del "%file%"') do (
 echo %%s!sym!>>"%file%"
 )
Вот этот код у меня как раз нормально работает

Последний раз редактировалось V!RTuE, 11-02-2015 в 23:52. Причина: Дополнено


Отправлено: 23:14, 11-02-2015 | #4


Ветеран


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

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


V!RTuE, кавычки убирать не надо. Надо использовать параметр «usebackq», дабы разбор «for /f» рассматривал строку в кавычках в наборе внутри скобок не как просто строку, а как путь к файлу. Например:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

echo Просто строка:
for /f "tokens=*" %%i in ("%~dp0ARCHIVE\Report.txt") do echo %%i^<br^>

echo.
echo Путь к файлу:
for /f "usebackq tokens=*" %%i in ("%~dp0ARCHIVE\Report.txt") do echo %%i^<br^>

endlocal
exit /b 0
Цитата:
Код: Выделить весь код
E:\Песочница\0432\Тестовый К+>0001.cmd
Просто строка:
E:\Песочница\0432\Тестовый К+\ARCHIVE\Report.txt<br>

Путь к файлу:
sdrsafasdfs<br>
fdsgsdfg<br>
dfgsdfgd<br>
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:02, 12-02-2015 | #5


Ветеран


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

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


Цитата V!RTuE:
не работает, если запускаю из другой папки, в имени которой есть пробелы»
Боже ж мой.. Ну так лень добавить type или more?
Код: Выделить весь код
for /f "tokens=*" %%i in ('type "C:\Путь с пробелами\file.txt" ') do 1>>file.tmp echo %%i^<br^>
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:59, 12-02-2015 | #6


Аватара для V!RTuE

Пользователь


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

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


Цитата Foreigner:
Боже ж мой.. Ну так лень добавить type или more? »
Не лень, а пробелы в знаниях Только учусь (и то я не программист). А так большое спасибо вам и всем остальным, что помогаете

Отправлено: 09:13, 12-02-2015 | #7


Пользователь


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

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


А как добавить что-нибудь в каждую N строку(в конец)? Например, в каждую 4.
Некоторые строки пусты, в других есть пробелы и символы []+=:.

Отправлено: 11:19, 28-02-2015 | #8


Ветеран


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

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


Цитата TakTo:
А как добавить что-нибудь в каждую N строку(в конец)? Например, в каждую 4.
Некоторые строки пусты, в других есть пробелы и символы []+=:. »



В коде решил использовать ошибку деления на ноль:


Код: Выделить весь код
@echo off& setlocal enableextensions

set "N=4"
set "add=something"
set "file=D:\Test\example.txt"

for /f "delims=" %%i in ('^<"%file%" find/n /v ""^& del "%file%"') do (
 set "x=%%i"
 set/a count+=1
 >>"%file%" cmd/v/c ">nul 2>&1 set/a 1/(count%%N)&& echo[!x:*]^=!|| echo[!x:*]^=!!add!"
 )

endlocal& exit/b

.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:38, 01-03-2015 | #9


Пользователь


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

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


Georgio, спасибо
Скрытый текст

Отправлено: 09:33, 03-03-2015 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Добавить в начало каждой строки ее номер papacoca Скриптовые языки администрирования Windows 10 17-11-2014 19:12
[решено] Поиск <строки> в XML semiono AutoIt 28 17-11-2010 19:53
Тег <BR> Vilik Вебмастеру 1 08-08-2010 15:47
CMD/BAT - как удалить ">" из строки типа “>>…>>c:\program files\dir\mir\doc.skok” akrav Скриптовые языки администрирования Windows 1 14-02-2008 16:35




 
Переход