Показать полную графическую версию : [решено] Добавление текста
Morpheus
09-04-2012, 23:24
Iska, ну да, но вроде на это жалоб не было?
Raf-9600
09-04-2012, 23:29
Morpheus, были ;)
Ваш скрипт удаляет текст, который был в файле до применения батника, это неприемлемо.
Morpheus
09-04-2012, 23:40
Raf-9600, однако про скрипт в сообщении 15 (http://forum.oszone.net/post-1896471-15.html) вы написали То, что нужно! Благодарю. »
Raf-9600
09-04-2012, 23:42
Morpheus, а вы его проверьте ;)
Он не удаляет текст, который уже есть в файле, он дописывает к нему новый.
Morpheus
09-04-2012, 23:44
Raf-9600, да ну?
Создайте файл с текстом
aaa
bbb
ccc
и натравите скрипт, получитеcccЭтот текст надо дописать
А в случае если файл пустой, получите
.=Этот текст надо дописать
и натравите скрипт, получите »
Morpheus, я это и имел в виду, говоря выше (http://forum.oszone.net/post-1896660.html#post1896660) «то же».
Raf-9600, может, всё-таки, откажемся от пакетного файла?
Morpheus
09-04-2012, 23:53
Iska, может есть возможность прочитать его целиком, а не построчно? Неужели для такой простой операции надо в другие языки уходить?
Raf-9600
09-04-2012, 23:59
да ну? »
На самом деле тот скрипт забагирован. Благодарю что обратили мое внимание на это.
может, всё-таки, откажемся от пакетного файла? »
Мне не критичен способ реализации.
для такой простой операции »
Снимаю галочку "решено" из названия темы, и смиренно надеюсь, что кто-нибудь поможет в решении этой задачки http://i26.fastpic.ru/big/2011/0719/4b/a301ce665424f1d6dcf65cddbd6b8e4b.gif
P.S.
Обновил первый пост.
1. Текст добавлялся в первую свободную строку (т.е. НЕ с новой строчки). »
Это как?
В конец последней строки, независимо от того, заканчивается ли она символами «Конец строки»:
Hello·World¶
Hello·World¶
Hello·World¶
либо она не заканчивается символами «Конец строки»:
Hello·World¶
Hello·World¶
Hello·Worldтак?
И куда добавлять, если, например, в конце файла несколько пустых строк:
Hello·World¶
Hello·World¶
Hello·World¶
¶
¶
Foreigner
10-04-2012, 00:19
Raf-9600, на POSH
$text = "Текст"
if (!(test-path 1.txt)) { new-item -t file 1.txt }
$content = @()
$content += get-content 1.txt
$content[0] += $text
$content | set-content 1.txt
Raf-9600
10-04-2012, 00:19
Iska, у меня вообще планируется только одна строка :)
Наверное, в конец первой строки...
А в случае если файл пустой, получите
Код:
.=Этот текст надо дописать »
Morpheus, это неправда проверте еще раз, перед тем как запускать удалите сушествующий пустой файл, тогда все будет работать.
и натравите скрипт, получите
Код:
cccЭтот текст надо дописать »
Согласен, вывод такой, однако за основу я брал код сдесь CMD/BAT - [решено] Дописать в конец файла (http://forum.oszone.net/nextoldesttothread-171287.html), значит там закралась ошибка, сори (извиняюсь) непроверил чужой код. В нем и правда каждое значение предыдущей строчки затирается следующей, подумаю еще.
Raf-9600
10-04-2012, 00:24
на POSH »
Эм... Загуглил что это такое... В общем, желательно бы чтобы способ был работоспособен на любой версии Windows (в том числе на 9x), а POSH это если не обманывает Википедия, только для новых.
P.S.
Извините, что не сказал об этом ранее.
это неправда проверте еще раз, перед тем как запускать удалите сушествующий пустой файл, тогда все будет работать. »
Дважды запустите этот скрипт:
@Echo Off
set fail=Command.txt
set tekct=;multitest
IF NOT exist %fail% (echo .>%fail%)
For /F "tokens=*" %%i In (%fail%) Do Set ti=%%i
Set new=%ti:.=%
Set new=%new%%tekct%
Echo %new%>Command.txt
Morpheus
10-04-2012, 00:27
это неправда проверте еще раз, перед тем как запускать удалите сушествующий пустой файл, тогда все будет работать. »
Если файл пустой, о чём я и сказал, то это правда. Есть 3 состояния:
1. Файл с текстом
2. Файл пустой
3. Файла нет
Единственное отличие 19 (http://forum.oszone.net/post-1896646-19.html) от 15 (http://forum.oszone.net/post-1896471-15.html) как раз в корректной обработке пустых файлов.
Morpheus, у меня два
1) файла нет
2) файл непустой однострочный
Таким его сделал ну а дальше надо переделывать
Raf-9600
10-04-2012, 00:30
Morpheus, на самом деле Oleg48 по-своему прав. Вы видь, наверняка удалили пробелы в его скрипте, от этого и такая ошибка. Но если пробелы не удалять, тогда при первом срабатывании перед добавленным текстом будет длиннющий пробел.
файл непустой однострочный »
Это кстати приемлимо.
set tekct=;multitest » Сдесь обязательно ; ?
Raf-9600, я несильно большой дока в написании командных файлов, у меня вроде работает как я задумал, а вам удачи :) !!!
Raf-9600
10-04-2012, 00:40
Сдесь обязательно ; ? »
Да! =)
я несильно большой дока в написании командных файлов »
И, тем не менее, благодарю за попытку помочь :)
Morpheus
10-04-2012, 00:40
Raf-9600, если файлы будут однострочными, то в чём тогда проблема?
Если 1) файла нет
2) файл непустой однострочный »
cм.#15 или #19.
Если 1. Файл с текстом
2. Файл пустой
3. Файла нет »
cм.#19.
Raf-9600
10-04-2012, 00:51
у меня вроде работает как я задумал »
Удалите текстовый файл и один раз запустите свой скрипт (тот который с лишними пробелами), тогда перед добавленным словом будет длиннющий пробел. Или удалите лишние пробелы в своем скрипте и дважды его запустите, тогда заметите другую ошибку.
то в чём тогда проблема? »
Ага, нашел проблему. В вашем скрипте, если добавляемый текст вначале содержит знак ; то текст который уже есть в файле удаляется и записывается новый. Это реально как-то обойти?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC