Как добавить в конец каждой строки <br>?
Надо добавить в текстовом файле в конец каждой строки <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
но ничего не получается. Я так понимаю проблема в том, что надо правильно экранировать символы < и >
Попробовал так:
но тоже ничего не получается
|
В общем пошел окольными путями и сделал так:
Код:
@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"
Может кто предложит как попроще это сделать?
|
V!RTuE, А так просто не работает?
Код:
@echo off
setlocal
for /f "tokens=*" %%i in (file.txt) do 1>>file.tmp echo %%i^<br^>
move file.tmp file.txt
|
Цитата:
Цитата 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, кавычки убирать не надо. Надо использовать параметр «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>
|
|
Цитата:
Цитата V!RTuE
не работает, если запускаю из другой папки, в имени которой есть пробелы »
|
Боже ж мой.. Ну так лень добавить type или more?
Код:
for /f "tokens=*" %%i in ('type "C:\Путь с пробелами\file.txt" ') do 1>>file.tmp echo %%i^<br^>
|
Цитата:
Цитата Foreigner
Боже ж мой.. Ну так лень добавить type или more? »
|
Не лень, а пробелы в знаниях :) Только учусь (и то я не программист). А так большое спасибо вам и всем остальным, что помогаете
|
А как добавить что-нибудь в каждую N строку(в конец)? Например, в каждую 4.
Некоторые строки пусты, в других есть пробелы и символы []+=:.
:shuffle:
|
Цитата:
Цитата TakTo
А как добавить что-нибудь в каждую N строку(в конец)? Например, в каждую 4.
Некоторые строки пусты, в других есть пробелы и символы []+=:. »
|
В коде решил использовать ошибку деления на ноль:o:
Код:
@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
.
|
Время: 16:32.
© OSzone.net 2001-