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

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

Hardip 26-11-2010 21:32 1552338

Дописание информации в файл
 
Вложений: 2
Доброе время суток! Есть програмка которая выбирает строки из текстового файла (в нём 2 столбца с числами), и делит их друг на друга. Соответственно выводя результат на экран))
Код:

@echo off
setlocal enabledelayedexpansion
for /f "TOKENS=1,2*" %%i IN (nt.txt) do (
set /a Size=%%i/%%j  echo !Size!>>nt.txt
)
pause>nul

Вот тут
Код:

!Size!>>nt.txt
я направляю поделенные цифры для добавления в файл. Но он их записывает сначала просто подставляя к последней строке(было 1 5 - стало например 1 52), а далее в столбик. Хотелось бы чтобы рядом, с этими двумя создавался третий (с пробелом между) с результатом. Заранее благодарю за помощь!

Anonymоus 26-11-2010 22:47 1552395

Hardip, возможно, так?
Код:

@Echo Off
SetLocal EnableDelayedExpansion
For /F "tokens=1,2*" %%i In (nt.txt
) do (
Set /A Size=%%i/%%j
Echo %%i %%j !Size!>>nt.tmp
)
Del nt.txt & Ren nt.tmp nt.txt
Pause>nul


Hardip 26-11-2010 22:53 1552398

Цитата:

Цитата Anonymоus
Anonymоus »

Да! Именно так! Спасибо огромное! А почему он создает соседний столбец через пробел, объясните пожалуйста!
Код:

Echo %%i %%j !Size!
И обязательно ли создавать временный, можно сразу писать в новый файл (вроде copy con - создание пустого или както-проще)?

Anonymоus 26-11-2010 22:57 1552399

Цитата:

Цитата Hardip
А почему он создает соседний столбец через пробел »

Потому, что мы построчно записываем в файл переменные i и j, а так же вычисленный результат, разделённые пробелами, т.е. строим новую таблицу взамен дописывания к старой.
Цитата:

Цитата Hardip
И обязательно ли создавать временный, можно сразу писать в новый файл »

Можно писать и в существующий, но тогда данные опять начнутся с того места, где заканчивается предыдущая строка. Грубо говоря, приходится использовать этот вариант, потому что cmd.exe не умеет дописывать в конец нужной строки, только в конец файла.


Время: 17:20.

Время: 17:20.
© OSzone.net 2001-