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

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

Ответить
Настройки темы
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле

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


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

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


Помогите решить задачку.
Есть файл-лист (list.txt) вида:

*.????.ini
*.????.ini
*.????.ini
*.????.ini
*.????.ini
*.????.ini
*.????.ini

Необходимо взять имена файлов из него и переместить в файл list1.txt, но имена переделать в такой вид:

*.ini
*.ini
*.ini
*.ini
*.ini
*.ini
*.ini

Т.е. надо удалить из имени файла .????.

Отправлено: 13:58, 17-01-2012

 

Аватара для gora

Ушёл из жизни


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

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


Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
:: Обрабатываемый файл
Set file=e:\Temp\list.txt

(For /F "usebackq tokens=* delims=" %%i In ("%file%") Do (
	Set ti=%%~ni
	Echo !ti:~0,-5!%%~xi
))>list1.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:30, 17-01-2012 | #2



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

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


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


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

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


Огромное спасибо!

Отправлено: 14:38, 17-01-2012 | #3


Аватара для Freem

Старожил


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

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


Добрый день.

У меня похожая задача, только искомый текст разный. Хотел бы его задать в виде переменных:

Код: Выделить весь код
set "path=C:\путьдофайла.txt" 
set "str1 = текст1" 
set "str2 = текст2" 
set "str3 = текст3" 

Найти эти строки в файле %path% и удалить. сохранить изменения.

Отправлено: 17:28, 22-05-2015 | #4


Ветеран


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

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


Цитата Freem:
set "path=C:\путьдофайла.txt" »



"PATH" -- это системная переменная, которая определяет пути к системным файлам и некоторым программам. Если Вам в дальнейшем нужно будет использовать в коде утилиты командной строки или вызывать новый экземпляр "cmd.exe" (а Вам придётся это делать), то в итоге получите примерно такую "картину":



Код: Выделить весь код
C:\>set "path=C:\путьдофайла.txt"

C:\>cmd.exe /c
"cmd.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
.





Цитата Freem:
set "str1 = текст1" »



Не вставляйте никаких пробелов до и после знака равенства, иначе установите не ту переменную, которую хотели, и не с тем значением, которое хотели:



Код: Выделить весь код
C:\>set "str1 = текст1"

C:\>echo %str1%
%str1%

C:\>echo %str1 %
 текст1
.





Цитата Freem:
Найти эти строки в файле %path% и удалить. сохранить изменения. »



Попробуте такой код (принцип взят из "CMD/BAT - [решено] Удалить из файла "Test.txt" все символы звездочка *"):



Код: Выделить весь код
@echo off
setlocal

set "file=C:\Test.txt"

set "str1=текст1"
set "str2=текст2"
set "str3=текст3"

for /l %%i in (1 1 3) do call call :sub "%%str%%i%%"

endlocal
exit/b 0


:sub

 for /f %%i in ('
  ^<"%file%" find/c /v ""
 ') do <"%file%">.tmp (
  for /l %%j in (1 1 %%i) do (
   set x=& set/p x=& if defined x (
    for /f "delims=" %%k in ('cmd/v/c echo "!x:%~1=!"') do (
     echo.%%~k
    )
   ) else (
    echo.
   )
  )
 )
 >nul move .tmp "%file%"

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

Отправлено: 20:06, 22-05-2015 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - С помощью bat-ника заблокировать сайт DarkSmail Скриптовые языки администрирования Windows 2 07-05-2013 16:11
CMD/BAT - [решено] Как с помощью bat-ника октрыть\закрыть лоток привода? Nun-Nun Скриптовые языки администрирования Windows 9 15-06-2011 21:56
CMD/BAT - С помощью bat-ника найти и заменить текст в файле на текст из другого файла Nun-Nun Скриптовые языки администрирования Windows 1 08-03-2011 15:25
CMD/BAT - [решено] Как с помощью bat-ника записать названия папок в текстовый файл? Nun-Nun Скриптовые языки администрирования Windows 9 23-02-2010 20:15
CMD/BAT - [решено] Работа с 7z.exe в bat\cmd файле Medic84 Скриптовые языки администрирования Windows 5 13-10-2009 15:35




 
Переход