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

Компьютерный форум 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

 

Googler


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

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


Цитата Devils0411:
не понятно куда пакетник сохраняет пути »
на экран выводит, если нужно сохранить в переменную OemPnPDriversPath, заменить последнюю строку на:
Код: Выделить весь код
Set OemPnPDriversPath=%OemPnPDriversPath:~1%
Цитата Devils0411:
подобное этому, только средствами пакетных файлов »
гм... извиняюсь, по ходу промазал - линк не проверил... впрочем, ты сам нашел

Отправлено: 02:40, 16-07-2009 | #11



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

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


Аватара для Devils0411

Ветеран


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

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


Код: Выделить весь код
SetLocal EnableDelayedExpansion
:: Путь к каталогу с драйверами:
Set ROOT=C:\Drivers

PUSHD %ROOT%
For %%i In ("%ROOT%") Do If Exist %%i (Set ROOT=%%~si&Set $R=%%~nxsi) Else Exit
For /F "Delims=" %%i In ('DIR /B/S/A:D *') DO (
   Set $D=%%~si
   If Exist !$D!\*.inf Set OemPnPDriversPath=!OemPnPDriversPath!;!$R!!$D:%ROOT%=!
)
Echo %OemPnPDriversPath%>>file.txt
Пару вопросов.
1. Каким образом убрать тильду в некоторых путях? Например (Drivers\BLUETO~1\B;Drivers\MASSST~1\C2)
2. А также хотел узнать, как можно эти пути сохранить в winnt.sif в 37 строку в ковычки то бишь вот сюда( OemPnpDriversPath=""), без затирания ниже написанных строк?

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


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


Googler


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

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


Devils0411

1. имена каталогов в пути должны соответствовать формату 8.3, иначе будут тильды
2. вместо вставки в середину проще добавить в конец файла две строки типа:
Код: Выделить весь код
[Unattended]
OemPnPDriversPath="Drivers\BLUETH\B;Drivers\MSST\C2"

Отправлено: 09:56, 18-07-2009 | #13


Аватара для Devils0411

Ветеран


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

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


amel27, Дык секция [Unattended] находится в середине файла. Если ее перенести, это не повлияет на работу установки?
Да и вот в этом варианте скрипта, собранного по кускам, он не добовляет тильды, но почему то дублирует слово Drivers

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


Последний раз редактировалось Devils0411, 03-08-2009 в 22:08.


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


Googler


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

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


Цитата Devils0411:
Если ее перенести, это не повлияет на работу установки? »
не повлияет, секции можно бить на нескольких кусков
Цитата Devils0411:
он не добовляет тильды »
если имя каталога не удовлетворяет требованию 8.3, драйвер может не установиться - приведение к формату 8.3 (с тильдами) было намеренно заложено в самом скрипте

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


Аватара для Devils0411

Ветеран


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

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


Каким образом можно вставить в конец файла winnt.sif эти строки?

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


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


Googler


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

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


Devils0411, то же с выводом в файл:
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

Set ROOT=C:\Drivers
Set WSIF=C:\TEST\winnt.sif

PUSHD %ROOT%
For %%i In ("%ROOT%") Do If Exist %%i (Set ROOT=%%~si&Set $R=%%~nxsi) Else Exit
For /F "Delims=" %%i In ('DIR /B/S/A:D *') DO (
   Set $D=%%~si
   If Exist !$D!\*.inf Set OemPnPDriversPath=!OemPnPDriversPath!;!$R!!$D:%ROOT%=!
)

Echo [Unattended]>>"%WSIF%"
Echo OemPnPDriversPath="%OemPnPDriversPath:~1%">>"%WSIF%"

Отправлено: 07:34, 20-07-2009 | #17


Аватара для Devils0411

Ветеран


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

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


Выдал ошибку. Слишком длинная входная строка.

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


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


Googler


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

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


Devils0411, при какой длине выдает ошибку?.. имей ввиду, что длина OemPnPDriversPath в файле winnt.sif не может быть больше 4096 символов (в твоём файле 8170), т.е. всё "лишнее" будет обрезано, повторюсь - сокращай длину имени каталогов... как это делал Башрат в своих драйверпаках
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:46, 20-07-2009 | #19


Аватара для Devils0411

Ветеран


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

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


Спасибо. Сократил длину, и все скопировалось.

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


Отправлено: 17:49, 20-07-2009 | #20



Компьютерный форум 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




 
Переход