PDA

Показать полную графическую версию : bat который будет дописывать строки в конец файла


infoman1@vk
10-06-2014, 13:44
помогите создать .bat который будет дописывать строки в конец файла. даже если нет переноса строки, то всеравно писать с начала строки.
в файл d:\123.txt дописать с новой строки
tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst
tekst tekst tekst
tekst tekst tekst tekst

что то на подоби етого но он не работает

For /F "tokens=*" %%i In (d:\123.txt) Do Echo %%i.
tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst
tekst tekst tekst
tekst tekst tekst tekst >tmp.txt
Copy /y tmp.txt 123.txt>Nul
Del tmp.txt

Iska
10-06-2014, 13:56
Вставьте первой строкой:
>>"d:\123.txt" echo.

Georgio
10-06-2014, 14:55
@echo off
for /f %%i in ('
find /c /v ""^<"123.txt"
') do (
set m=%%i
)
for /f "delims=:" %%i in ('
findstr /n $ "123.txt"
') do (
set n=%%i
)
if not %m%==%n% (
echo.>>"123.txt"
)
for %%i in (
"tekst tekst tekst tekst "
"tekst tekst tekst tekst tekst tekst tekst "
"tekst tekst tekst "
"tekst tekst tekst tekst "
) do (
echo %%~i>>"123.txt"
)
exit /b

infoman1@vk
10-06-2014, 15:59
Цитата Georgio:
Код:
@echo off
for /f %%i in ('
find /c /v ""^<"123.txt"
') do (
set m=%%i
)
for /f "delims=:" %%i in ('
findstr /n $ "123.txt"
') do (
set n=%%i
)
if not %m%==%n% (
echo.>>"123.txt"
)
for %%i in (
"tekst tekst tekst tekst "
"tekst tekst tekst tekst tekst tekst tekst "
"tekst tekst tekst "
"tekst tekst tekst tekst "
) do (
echo %%~i>>"123.txt"
)
exit /b »
вовсе ничего не делает


я создал 2 файла

22.bat
@echo off
for /f %%i in ('
find /c /v ""^<"123.txt"
') do (
set m=%%i
)
for /f "delims=:" %%i in ('
findstr /n $ "123.txt"
') do (
set n=%%i
)
if not %m%==%n% (
echo.>>"123.txt"
)
for %%i in (
"tekst tekst tekst tekst "
"tekst tekst tekst tekst tekst tekst tekst "
"tekst tekst tekst "
"tekst tekst tekst tekst "
) do (
echo %%~i>>"123.txt"
)
exit /b123.txt
file 123запустил 22.bat
и файл 123.txt так и остался не тронутым а по идеи должно было получится
file 123
tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst
tekst tekst tekst
tekst tekst tekst tekst

Georgio
10-06-2014, 16:12
@echo off
for /f %%i in ('
find /c /v ""^<"123.txt"
') do (
set m=%%i
)
for /f "delims=:" %%i in ('
findstr /n $ "123.txt"
') do (
set n=%%i
)
if not "%m%"=="%n%" (
echo.>>"123.txt"
)
for %%i in (
"tekst tekst tekst tekst "
"tekst tekst tekst tekst tekst tekst tekst "
"tekst tekst tekst "
"tekst tekst tekst tekst "
) do (
echo %%~i>>"123.txt"
)
exit /b

infoman1@vk
10-06-2014, 16:57
супер то что нужно

Georgio
11-06-2014, 00:19
infoman1@vk, вот так ещё точнее:

@echo off
(
for /f %%i in ('
find /c /v ""^<"123.txt"
') do (
set m=%%i
)
)|| set m=0
(
for /f "delims=:" %%i in ('
findstr /n $ "123.txt"
') do (
set n=%%i
)
)|| set n=0
if %n% lss %m% (
echo.>>"123.txt"
)
for %%i in (
"tekst tekst tekst tekst "
"tekst tekst tekst tekst tekst tekst tekst "
"tekst tekst tekst "
"tekst tekst tekst tekst "
) do (
echo %%~i>>"123.txt"
)
exit /b

.

alkogoliksasha
11-07-2014, 20:31
а как сделать так так чтобы скрипт рекурсивно искал по маске файла(*.txt ) и дописывал в конец строку текста?

Georgio
11-07-2014, 21:45
@echo off
for /r "D:\Test" %%i in (*.txt) do (
(
for /f %%j in ('
find /c /v ""^<"%%i"
') do (
set m=%%j
)
)|| set m=0
(
for /f "delims=:" %%j in ('
findstr /n $ "%%i"
') do (
set n=%%j
)
)|| set n=0
for /f "tokens=1,2" %%j in ('
call echo %%m%% %%n%%
') do (
if %%k lss %%j (
echo.>>"%%i"
)
)
chcp 1251>nul
for /f "eol= delims=" %%j in ("строка текста") do (
chcp 866>nul
echo %%j>>"%%i"
)
)
exit /b

alkogoliksasha
11-07-2014, 22:21
Большое спасибо,все работает.




© OSzone.net 2001-2012