Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   bat который будет дописывать строки в конец файла (http://forum.oszone.net/showthread.php?t=283439)

infoman1@vk 10-06-2014 13:44 2362445

bat который будет дописывать строки в конец файла
 
помогите создать .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 2362449

Вставьте первой строкой:
Код:

>>"d:\123.txt" echo.

Georgio 10-06-2014 14:55 2362477

Код:

@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 2362511

Цитата 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 /b

123.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 2362516

Код:

@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 2362536

супер то что нужно

Georgio 11-06-2014 00:19 2362732

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 2375393

а как сделать так так чтобы скрипт рекурсивно искал по маске файла(*.txt ) и дописывал в конец строку текста?

Georgio 11-07-2014 21:45 2375415

Код:

@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 2375425

Большое спасибо,все работает.


Время: 04:34.

Время: 04:34.
© OSzone.net 2001-