![]() |
удалить текст в каждой строке txt файла
есть такой код
Код:
SET NAME=file.bin но programm.exe выдает результат в виде таких строк: (если запущен в текущей папке --- programm.exe file.bin > log.txt) Код:
logging result: Код:
logging result: v1 - в данном случае заранее известное %NAME% имя файла --- "file.bin" или "C:\000\Очень длинная папка с пробелами\file.bin" --- удалить или заменить на "" v2 - узнать длину текста в переменной имени файла %NAME% (судя по этой теме задача тоже не в одну строку) --- в данном случае длина будет равна 8 или 47 --- и удалить с начала каждой строки это количество символов - пара тем с удалением 1 2 чтобы получилось что-то короткое типа: Код:
logging result: что-то типа: Код:
programm.exe %NAME% > log.txt |
решение по v2
компиляция из найденных выше решений Код:
chcp 1251 |
Цитата:
Код:
$rep = 'file.bin' результат: Цитата:
|
Эта программа умеет только в файл выгружать или можно результат поместить в буфер обмена?
Можно тогда будет работать с буфером и обрабатывать его вместо создания промежуточного файла. Powershell Код:
& program.exe $args |set-clipboard Было Код:
logging result: Код:
$file = 'file.bin' Код:
111 |
Цитата:
|
Да, действительно. Можно так попробовать:
Код:
$file = 'file.bin' |
bat-файл
Код:
@Echo Off |
Цитата:
а на что влияют кавычки в первых трех строках? я их удалил, всё также работает (и с ними и без них) , обычно если и ставят кавычку то после равно? в отличие от первого bat-решения второе bat-решение: - создаётся не 2 лог файла а только 1 короткий - обрезается не все строки лога, а только те, где есть имя файла, т.е. более правильная обрезка - более точно передаются строки в лог и нет больше "Режим вывода команд на экран (ECHO) отключен." вместо некоторых "проблемных" строк - не работает с именем файла, у которого есть в имени "()", например fi(111)le.bin - код короче |
Цитата:
|
shadowbat,
Код:
@Echo Off |
в последнем коде программа выполнилась, лог создался, но замена (обрезка) в логе не произошла
|
shadowbat, я несколько раз уточнял решение, возьмите актуальное. Я проверил - у меня обрезается на той имитации, что у меня есть.
Покажите свой лог файл. Я ориентировался на текст ПутьфайлаИмя.расширение - то что надо оставить в строке пробел-пробел |
теперь к логу почему-то добавляется "путь файла" новой первой дополнительной строкой (хотя не должен)
при этом файл отображается в логе, т.е. до программы доходит, программой нормально обрабатывается т.е. обычный лог, только с доп 1й строкой |
Цитата:
Код:
@Echo Off |
всё, до меня дошло - мой косяк - вы искали "NAME - " (как указано в примере в 1ом сообщении), сейчас поменяю на "NAME:" как в моём оригинальном логе
теперь имя файла удаляется в строках, но новая первая строка в логе "D:\222\111.bin" никуда не исчезла да и не критично, будет этакий лог имени внутри самого лога возможно первую строку создаёт сама программа в связи с особым способом скармливания ей файла |
Цитата:
Код:
@Echo Off Цитата:
|
добавление этой строки через
Код:
>"%Log%" Echo "%FName%" так что да, код официально работает (и работал ещё на прошлой странице, если бы не кривой ТС) |
Цитата:
опытным путём выявлено, что в примере ниже например кавычки в виде "set a=1" помогают не поломаться коду ломается: Код:
set File=asd sd(11)a asd Код:
set File=asd sd(11)a asd Код:
set File=asd sd(11)a asd |
Время: 23:55. |
Время: 23:55.
© OSzone.net 2001-