|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удалить последнее слово в строке |
|
CMD/BAT - Удалить последнее слово в строке
|
Новый участник Сообщения: 41 |
Профиль | Отправить PM | Цитировать
Доброго времени суток!
Подскажите пожалуйста как решить такую задачу, никак не могу найти нужной команды. Есть фаил t1.txt, в нем есть строка "c:\folder1\ololo\folder2\doc.txt", как удалить doc.txt ? Название этих файлов doc.txt всегда будут разные, но это всегда будут тхт файлы, нужно чтобы остался только путь до папки т.е. c:\folder1\ololo\folder2\ Пробовал делать через найти и заменить, получилось поменять путь, на который мне надо, но убрать последнее слово так и не придумал как. Пробовал через findstr, команда выглядит так: findstr /s /m "parametr" C:\folder1*.* Но она возвращает полный адрес, т.е. c:\folder1\folder2\folder3\doc.txt, а нужно c:\folder1\folder2\folder3\ 2ой вариант искал возможность это копировать на каталог выше фаил. Например он лежит c:\folder1\folder2\folder3\doc.txt, а скопировать в c:\folder1\folder2\doc.txt, но опять же фаил находит findstr по параметрам, но конечные папки неизвестны. Пробовал делать xcopy "..\" но в таком виде он копирует в корень диска C. Также пробовал делать циклом, а именно: @echo off setlocal enabledelayedexpansion FOR /F "delims=arh" %%i in (c:\temp1\t1.txt) do ( echo %%i>c:\temp1\pars.txt ) Но проблема в том, что он обрезает строку, когда встретит буквы a,r или h, а надо чтобы он читал до того момента, когда встретит именно "arh". В строке такое слово только 1, например C:\test1\test-r\test-a\arh\doc.txt В таком виде он обрезает до C:\test1\test- , а нужно чтобы до C:\test1\test-r\test-a\ Если есть какие то идеи как реализовать это подскажите пожалуйста. Заранее спасибо. |
|
Отправлено: 16:57, 11-09-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:39, 11-09-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Цитата Iska:
с остальным более менее понял, спасибо! |
|
Отправлено: 21:06, 11-09-2013 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата AlekseyB.:
а «~», «d» и «p» — её модификаторы. |
|
Отправлено: 02:46, 12-09-2013 | #13 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Понял, спасибо! а что значит "a=<" ? (set /p a=<c:\temp\t1.txt)
Ещё вопрос про переменные, чтобы уже до конца разобраться - можно ли переменной присвоить значение внутри текстового файла? Ну чтобы чтение из файла шло в переменную? А потом соответственно с ней (переменной) оперировать? |
Последний раз редактировалось AlekseyB., 12-09-2013 в 10:00. Отправлено: 09:54, 12-09-2013 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать
«set» — команда задания переменной окружения «a» некоего значения. «/p» — модификатор данной команды, позволяющий осуществить ввод этого значения с клавиатуры. При его задействовании появляется возможность использовать перенаправление ввода — «<» — из файла. Результатом исполнения приведённой команды будет то, что переменной окружения «a» будет присвоено значение первой строки из файла «c:\temp\t1.txt». Как правило, применяется вместо разбора содержимого файла по «for /f» с последующим присвоением, когда надо считать только одну или несколько первых строк.
Цитата AlekseyB.:
|
|
Отправлено: 10:20, 12-09-2013 | #15 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Спасибо огромное!
|
Отправлено: 10:28, 12-09-2013 | #16 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] как удалить определенный символ в строке из батника | RedX | Скриптовые языки администрирования Windows | 1 | 18-01-2012 10:36 | |
CMD/BAT - [решено] Удалить все знаки в строке после ; | hxygen | Скриптовые языки администрирования Windows | 11 | 16-11-2010 02:34 | |
Все знают про обьеденение строк ('слово'&'еще слово'), а есть ли способ исключениеня? | tweakos | AutoIt | 3 | 15-07-2009 09:52 | |
Звук - Колонки - последнее решение | Analog | Прочее железо | 6 | 03-01-2009 08:03 | |
последнее сообщение | Dimas_83 | О сайте и форуме | 2 | 04-07-2006 10:57 |
|