|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматическое удаление части имени файла |
|
|
CMD/BAT - Автоматическое удаление части имени файла
|
Новый участник Сообщения: 8 |
Задача : Есть Папка D:\Test . В папке находятся подкаталоги : test1, temp1 итд... Кол-во подкаталогов не ограничено. Имена рандомные.
Помогите допилить скрипт. Задача скрипта : Проход по всем подкаталогам и удаление части имени файлов, которые в них находятся, до разделителя "_" включительно. Пример : был файл PS-E9SSS1A 2_M71640, стал M71640 Сам скрипт (рабочий, но не проходит подкаталоги): @echo off setlocal enableextensions enabledelayedexpansion 2>nul pushd D:\Test && ( for /f "usebackq delims=" %%i in ( `2^>nul dir /b /a:-d` ) do ( set sVar=%%~i ren "%%~i" "!sVar:*_=!" ) popd ) || ( echo Can't find source folder [D:\Test] exit /b 1 ) endlocal exit /b 0 |
|
Отправлено: 16:11, 29-01-2020 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать вопрос 1
что делать с файлами вида: PS_E9SSS1A 2_M71640 ------------- вопрос 2 что делать с файлами: PS-E9SSS1A 2_M71640 PP-E9SSS1A 2_M71640 PS-E9SSS1A 3_M71640 |
Отправлено: 17:08, 29-01-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать 1.Файлы вида PS_E9SSS1A 2_M71640 переименовываются в файлы вида M71640
2.Файлы вида PS-E9SSS1A 2_M71640 PP-E9SSS1A 2_M71640 PS-E9SSS1A 3_M71640 Не предусмотрены, все имена уникальны. Выше указаны скрипт, корректно работает в в папке D:\Test, но нет прохода по подкаталогам. вопрос 1 что делать с файлами вида: PS_E9SSS1A 2_M71640 Не верно прочитал. В файлах тоже используется толь-ко 1 разделитель. Файлов с двумя "_" нет |
Отправлено: 17:15, 29-01-2020 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:00, 29-01-2020 | #4 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Поэтому и не указывались данные условия. Ани не нужны. |
||||
Отправлено: 18:04, 29-01-2020 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось megaloman, 29-01-2020 в 18:54. Отправлено: 18:30, 29-01-2020 | #6 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать не работает
|
Отправлено: 18:38, 29-01-2020 | #7 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Путь прописан корректно, рус символов нет.
Цитата megaloman:
|
|
Отправлено: 19:07, 29-01-2020 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Trm007:
|
|
Отправлено: 21:14, 29-01-2020 | #9 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Iska, Есть конкретная задача. Похоже, файлы делаются неким софтом с жестким форматом имени, и утверждение, что в имени только один знак "_" обосновано.
Можно, конечно, учесть наличие нескольких "_" в имени.
При условии, что надо взять последнюю часть файла, вот вариант @Echo OFF
Set "FileIn=Z:\Тра та та\*_*.*"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%FileIn%" /B /A:-D /S`) Do (
Call :NewName "%%~nf"
Call Ren "%%f" "%%Name:*_=%%%%~xf" ||Call Echo Ren "%%f" "%%Name:*_=%%%%~xf"
)
Exit /B
:NewName
Set "Name=%~1"
:Begin
Set "Name1=%Name%"
Set "Name=%Name1:*_=%"
If Not "%Name%"=="%Name1%" GoTo :Begin
Exit /B
|
------- Отправлено: 23:43, 29-01-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Удаление файла по дате в Имени | kasab | Скриптовые языки администрирования Windows | 16 | 17-08-2019 10:17 | |
VBS/WSH/JS - [решено] Удаление файла с двумя пробелами в имени | ospekt00 | Скриптовые языки администрирования Windows | 7 | 05-03-2017 18:21 | |
CMD/BAT - перемещение файлов в каталог созданный из части имени файла | surrender1 | Скриптовые языки администрирования Windows | 9 | 10-10-2013 14:42 | |
Разное - Автоматическое удаление свойств и личной информации из файла - возможно ли? | Siller | Microsoft Windows 7 | 6 | 17-01-2013 17:52 | |
CMD/BAT - [решено] автоматическое удаление файла и ключа реестра при загрузке ПК | last-77 | Скриптовые языки администрирования Windows | 2 | 08-12-2010 10:19 |
|