|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скопировать часть имени файла в переменную |
|
CMD/BAT - [решено] Скопировать часть имени файла в переменную
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать
Добрый день уважаемые форумчане. Не могу решить задачку. Буду благодарен.
В папке лежат файлы типа CONS#111_000000.USR либо CONS#1_000000.USR Необходимо 000000 закинуть в переменную. Нашел способ setlocal ENABLEDELAYEDEXPANSION cd RECEIVE for %%i in (*.usr) do ( set FILENAME=%%i set NUMBER=!FILENAME:~7,6! echo !NUMBER! ) P.S. В итоге нужно с конца имени пропустить 4 символа (.USR) и использовать следующие 6 символов (000000) |
|
Отправлено: 20:17, 17-06-2019 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата crazydog:
А для извращенцев — начинать отсчёт вперёд от символа подчёркивания. |
|
------- Отправлено: 20:23, 17-06-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата mwz:
|
|
Отправлено: 20:25, 17-06-2019 | #3 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать crazydog, я-то могу написать — но мне придётся долго вспоминать и смотреть документацию.
Коллеги же напишут этот код за 5 секунд с закрытыми глазами — так что подождите их ответ(ы). И пока можете попробовать найти сами, как это делается: там что-то элементарное. PS Типа: — но надо чтобы имя файла подставлялось без расширения. |
------- Последний раз редактировалось mwz, 17-06-2019 в 20:56. Отправлено: 20:32, 17-06-2019 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать да, работает, но нужно расширение убрать
|
|
Последний раз редактировалось crazydog, 17-06-2019 в 21:16. Отправлено: 21:02, 17-06-2019 | #5 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать crazydog
При условии, что расширение 3-символьное — берём 10 последних символов и отбрасываем 4 самых последних (.ext): Но коллеги напишут изящнее... PS ...возможно использовав в цикле конструкцию — тогда расширение отрежется независимо от его длины и наличия, и можно будет использовать мой первый вариант (т.е. просто ~-6) |
------- Последний раз редактировалось mwz, 17-06-2019 в 21:22. Отправлено: 21:09, 17-06-2019 | #6 |
Ветеран Сообщения: 2703
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set "BoxIn=Z:\Box_In" Set "Mask=CONS#*_??????.USR" FOR /F "usebackq tokens=2 delims=_." %%n IN (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%"`) DO Echo %%n Pause Exit /B Первый вариант предпочтительнее, остальные, ИМХО, хуже
@Echo Off cls SetLocal EnableExtensions EnableDelayedExpansion Set "BoxIn=Z:\Box_In" Set "Mask=CONS#*_??????.USR" FOR /F "usebackq tokens=2 delims=_." %%n IN (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%"`) DO ( Set "NN=%%n" Echo !NN! ) EndLocal Pause Exit /B @Echo Off cls SetLocal EnableExtensions EnableDelayedExpansion Set "BoxIn=Z:\Box_In" Set "Mask=CONS#*_??????.USR" FOR /F "usebackq delims=" %%n IN (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%"`) DO ( Set "NN=%%~nn" Set "NN=!NN:~-6! Echo !NN! ) EndLocal Pause Exit /B |
------- Последний раз редактировалось megaloman, 17-06-2019 в 21:26. Отправлено: 21:16, 17-06-2019 | #7 |
fascinating rhythm Сообщения: 6484
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 21:31, 17-06-2019 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 03:52, 18-06-2019 | #9 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:41, 19-06-2019 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную | ___dima___ | Скриптовые языки администрирования Windows | 20 | 18-06-2017 01:46 | |
CMD/BAT - Скопировать в папку, зная только часть ее Имени | magarjoba | Скриптовые языки администрирования Windows | 9 | 15-02-2017 11:12 | |
Любой язык - Скопировать часть блоков из одного текстового файла в другой | Alexander_88 | Скриптовые языки администрирования Windows | 4 | 19-02-2016 14:59 | |
CMD/BAT - [решено] Увеличение значения имени переменной или считывание строки файла в переменную | VokaMut | Скриптовые языки администрирования Windows | 12 | 26-11-2012 15:54 | |
CMD/BAT - [решено] часть имени файла | LAKERS824 | Скриптовые языки администрирования Windows | 3 | 29-06-2012 08:02 |
|