Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] удалить строчки из файла a.txt

Ответить
Настройки темы
CMD/BAT - [решено] удалить строчки из файла a.txt

Аватара для spilberg

Новый участник


Сообщения: 26
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Нужен батник который сможет удалить строчки из файла a.txt в каждой строчке написано одно и тоже слово COMMAND

Например:
sdfsdf
COMMAND
sdfsdfsd
sdfsdf
sdfsdf
sdf
COMMAND
sdfsdf
sdf
sd
fsdfsdfsd
fsdfs
COMMAND
sdfsdf

А надо чтоб было так:
sdfsdf
sdfsdfsd
sdfsdf
sdfsdf
sdf
sdfsdf
sdf
sd
fsdfsdfsd
fsdfs
sdfsdf

помогите плиииз очень надо((

Отправлено: 00:01, 10-07-2009

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Попробуйте так:
Код: Выделить весь код
For /F "Delims=" %%I In (a.txt) Do If /I Not %%I==COMMAND Echo %%I>>temp.txt
Copy /y temp.txt a.txt
Del /q temp.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:21, 10-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


spilberg
gora
Работать с большими файлами этот код будет очень медленно, опять же проблема со спец. символами. Советую использовать SED.EXE
Код: Выделить весь код
@Echo Off

Sed "/command/Id" test.txt>result.txt

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 08:31, 10-07-2009 | #3


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


похожая ситуация:
C:\1\Ivanov\tryu.inf
C:\1\Petrov\adjrt.inf
C:\1\Sidorov\ghjdthrf.inf
C:\1\Bidlov\punkt\slkjd32.inf
необходимо:
1\Ivanov
1\Petrov
1\Sidorov
1\Bidlov\punkt

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 23:16, 13-07-2009 | #4


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Надеюсь, пояснения не нужны...

Код: Выделить весь код
@Echo off
SetLocal EnableDelayedExpansion 
SetLocal EnableExtensions

if "%1"=="" (
Echo Вызов: %0 ТекстовыйФайл КолонокДляУдаления ^(по умолчанию 1^)
Echo Например: %0 MyFileList.txt 3
Echo  удалит из файла MyFileList.txt 3 колонки
Goto :eof
)
set P=%2
if "%P%"=="" set P=1
set TF=%~dpn1.tmp

:L01
if not exist "%TF%" Goto L02
set TF=%TF%_
Goto L01
:L02

for /F "usebackq delims=" %%t in (%1) do (
set Line=%%t_
set Line=!Line:~%P%,-1!
echo !Line!>>"%TF%"
)

del /f %1
ren "%TF%" %~nx1

-------
Как сказало Дерево Дровосеку: "я - пень".

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:06, 14-07-2009 | #5


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


Объяснять то не нужно. В начале то колонки удаляет, потому что они одинаковые, а вот в конце у каждой строки колонки разные, и можно удалить необходимые символы.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 18:40, 14-07-2009 | #6


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Devils0411, попробуйте так:
Код: Выделить весь код
@Echo Off
Setlocal EnableDelayedExpansion
For /F "Delims=" %%I In (a.txt) Do (
	Set Line=%%~dpI
	Echo !Line:~3,-1!>>temp.txt
)
Copy /y temp.txt a.txt
Del /q temp.txt
Pause

Отправлено: 19:07, 14-07-2009 | #7


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Devils0411:
Похожая ситуация как у афтара, только немного по другому.

1\Ivanov
1\Petrov
1\Sidorov
1\Ivanov
1\Bidlov\punkt

необходим такой вариант

1\Ivanov;1\Petrov;1\Sidorov;1\Bidlov\punkt
Попробуйте так:
Код: Выделить весь код
@Echo Off
Setlocal EnableDelayedExpansion
Set SLine=
For /F "Delims=" %%I In (a.txt) Do (
	Set Line=%%~dpI
	Set SLine=!SLine!;!Line:~3,-1!
)
Echo !SLine!>>temp.txt
Copy /y temp.txt a.txt
Del /q temp.txt
Pause

Отправлено: 19:41, 14-07-2009 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Maza Faka:
Работать с большими файлами этот код будет очень медленно »
так вроде быстрей:
Код: Выделить весь код
FindStr /IVBE "COMMAND" 1.txt >2.txt
Devils0411, случайно не это ищешь? http://forum.oszone.net/post-520629-95.html

Отправлено: 13:05, 15-07-2009 | #9


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


amel27, Да подобное этому, только средствами пакетных файлов. Вот здесь CMD-вариант решения проблемы построения OemPnPDriversPath. Только не понятно куда пакетник сохраняет пути?

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 18:37, 15-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] удалить строчки из файла a.txt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Изменение кодировки txt файла из ANSI в UTF-16 LE crashtuak Скриптовые языки администрирования Windows 11 20-08-2009 11:57
CMD/BAT - [решено] Как прочесть из файла .txt только первую строчку текста. Sdib121 Скриптовые языки администрирования Windows 6 15-08-2009 14:26
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35
CMD/BAT - [решено] Найти ключевое слово в TXT из ВАГ-файла conteacky Скриптовые языки администрирования Windows 2 02-07-2009 14:03
CMD/BAT - [решено] печать txt файла Loki3D Скриптовые языки администрирования Windows 15 12-05-2009 16:35




 
Переход