1

Тема: CMD/BAT: Как удалить последние 6 символов из txt

Здравствуйте, Как удалить последние 6 символов из первой строчки txt файла?

2

Re: CMD/BAT: Как удалить последние 6 символов из txt

Никак. Только созданием временного файла и замещением исходного. Например:

@echo off
setlocal

set sFile=0001.txt
set sTempFile=temp.tmp

<"%sFile%" set /p sLine=>nul
echo %sLine:~0,-6%>"%sTempFile%"
more +1 "%sFile%">>"%sTempFile%"
ren "%sFile%" "%sFile%.bak"
ren "%sTempFile%" "%sFile%"

endlocal
exit /b 0

Читаем первую строку исходного файла в переменную окружения «sLine»:

<"%sFile%" set /p sLine=>nul

Выводим все символы прочтённой первой строки, за исключением последних шести, в новый временный файл:

echo %sLine:~0,-6%>"%sTempFile%"

Добавляем все строки исходного файла, за исключением первой, в тот же временный файл:

more +1 "%sFile%">>"%sTempFile%"

Добавляем к исходному файлу расширение «.bak», меняем имя временного файла на имя исходного файла:

ren "%sFile%" "%sFile%.bak"
ren "%sTempFile%" "%sFile%"

3

Re: CMD/BAT: Как удалить последние 6 символов из txt

Спасибо помогло, а если нужно ещё добавить текста, допустим "LAD"

4

Re: CMD/BAT: Как удалить последние 6 символов из txt

Если делаю так, то текст добавляется с новой строки, а мне надо на первую.

echo LAD >>1.txt

5

Re: CMD/BAT: Как удалить последние 6 символов из txt

echo %sLine:~0,-6%LAD>"%sTempFile%"
echo LAD%sLine:~0,-6%>"%sTempFile%"

6

Re: CMD/BAT: Как удалить последние 6 символов из txt

Он в начало текста добавляет, мне надо в конец

7

Re: CMD/BAT: Как удалить последние 6 символов из txt

Первый пример из моего предыдущего поста.

8 (изменено: Q2zoff, 2012-11-02 19:19:45)

Re: CMD/BAT: Как удалить последние 6 символов из txt

Помогите пожалуйста, как удалить последний символ, в конце файла (не строки)??

9

Re: CMD/BAT: Как удалить последние 6 символов из txt

mshta "about:<hta:application id=xxx />:<script>f=new ActiveXObject('Scripting.FileSystemObject').GetFile(xxx.commandLine.replace(/".*"[\t ]+/g,'').replace(/\\/g,'\\\\'));x=f.OpenAsTextStream();s=x.ReadAll().substr(0,f.Size - 1);x=f.OpenAsTextStream(2);x.Write(s);x.Close();window.close();</script>" c:\temp\sample.txt

Я конечно далек от мысли... (с)