![]() |
Автоматическое удаление части имени файла
Задача : Есть Папка 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 |
вопрос 1
что делать с файлами вида: PS_E9SSS1A 2_M71640 ------------- вопрос 2 что делать с файлами: PS-E9SSS1A 2_M71640 PP-E9SSS1A 2_M71640 PS-E9SSS1A 3_M71640 |
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 разделитель. Файлов с двумя "_" нет |
|
Цитата:
Поэтому и не указывались данные условия. Ани не нужны. |
Код:
@Echo Off |
не работает
|
Путь прописан корректно, рус символов нет.
Цитата:
|
Цитата:
|
Iska, Есть конкретная задача. Похоже, файлы делаются неким софтом с жестким форматом имени, и утверждение, что в имени только один знак "_" обосновано.
Можно, конечно, учесть наличие нескольких "_" в имени.
При условии, что надо взять последнюю часть файла, вот вариант Код:
@Echo OFF |
megaloman, я это понимаю. Но правильный подход к проектированию требует предусмотреть все возможные случаи.
|
Время: 00:23. |
Время: 00:23.
© OSzone.net 2001-