|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Имя файла из его содержимого |
|
CMD/BAT - Имя файла из его содержимого
|
Новый участник Сообщения: 8 |
Есть батник копирующий файл с текстом из одной папки в другую, содержимое: copy c:\one\ps.txt c:\two\*.*
В тексте файла есть строка: P;ПП-05254543 в которой первая часть всегда статична (P;ПП-) а вторая, состоящая из цифр меняется. Как модернизировать вышеприведенный бат файл что бы копируемому файлу присваивалось имя из числовой части строки (P;ПП-05254543), в данном случае (05254543) Надеюсь понятно изложил. Жду совета ![]() |
|
Отправлено: 18:03, 21-05-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Упакуйте несколько образцов таких файлов в архив, и приложите его к сообщению.
|
Отправлено: 19:22, 21-05-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off chcp 1251 Set "InFile=Z:\One\траляля.txt" SetLocal EnableExtensions EnableDelayedExpansion FOR /F "usebackq tokens=* delims=" %%i in ("%InFile%") do ( Set "s=%%i" Set "s=!s:P;ПП-=!" If not %%i==!s! ( Set "s=!s: =!" copy "%InFile%" "z:\two\!s!.txt" GoTo :Eof ) ) Если ps.txt в DOS (866) кодировке, то строку chcp 1251 надо удалить Для отладки у меня ваш c:\one\ps.txt записан как Z:\One\траляля.txt А лучше Цитата:
|
|
------- Отправлено: 20:39, 21-05-2014 | #3 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Приложил два файла для примера.
megaloman, Ваш скрипт работает. Забыл указать что в конце строки есть символ ";" он не нужен. |
Отправлено: 11:02, 22-05-2014 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата:
Set "s=!s:;=!" Пока Ваши файлы не смотрел |
||
------- Отправлено: 13:14, 22-05-2014 | #5 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Как сделать что бы путь к исходному файлу не жестко задавать а добавить его как параметр %1 при запуске батника ?
Попробовал так, не получилось ![]() |
Последний раз редактировалось Sinus, 22-05-2014 в 16:29. Отправлено: 16:23, 22-05-2014 | #6 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать по идее так, но у меня Ваши батники не отрабатывают даже в исходном виде, может конечно с кодировками что не то
(просто перетаскиваете файл на батник) |
Последний раз редактировалось firstarey, 26-05-2014 в 08:10. Отправлено: 08:00, 26-05-2014 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование файла по условию его содержимого | XSubZero | Скриптовые языки администрирования Windows | 3 | 16-05-2012 17:13 | |
CMD/BAT - [решено] Поиск файла и замена в его содержимого | alderv | Скриптовые языки администрирования Windows | 3 | 20-08-2011 13:11 | |
VBS/WSH/JS - Добавить в первую строку текстового файла его имя и дату | SergeyVD | Скриптовые языки администрирования Windows | 6 | 06-07-2011 20:06 | |
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 13-05-2009 13:28 | |
Как получить имя текущего пользователя для использования его в имени файла | Denchik | Автоматическая установка Windows 2000/XP/2003 | 1 | 25-01-2006 22:33 |
|