|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - удалить первые 7 символов в имени файла |
|
CMD/BAT - удалить первые 7 символов в имени файла
|
Новый участник Сообщения: 10 |
Вообще не могу сообразить.
надо: в папке C:\ftp\rpo во всех именах файлов удалить первые 7 символов. Помогите? ФОрум глядел сообразить не могу, префикс дописывать научился, сейчас его убрать надо, а не получается. |
|
Отправлено: 15:12, 01-04-2015 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Всем доброго дня!
Немного переработал скрипт под себя: @echo off :: Добавил строку кодаровки, чтобы работало с русскими именами и путями chcp 1251 setlocal enableextensions enabledelayedexpansion :: Убрал строку :: set sSourceFolder=C:\ftp\rpo :: Изменил строку :: 2>nul pushd "%sSourceFolder%" && ( 2>nul pushd && ( :: чтобы работало в конкретной папке for /f "usebackq delims=" %%i in ( `2^>nul dir /b /a:-d` ) do ( set sVar=%%~i :: Удалить все до символа "_" ren "%%~i" "!sVar:*_=!" ) popd ) || ( exit /b 1 ) endlocal exit /b 0 - Как сделать так, чтобы когда обнаруживаются одинаковые имена, скрипт автоматом добавлял в конец имени скажем "(2)" т.е. если файл 123.db уже есть, то следующий будет назван 123(2).db, 123(3).db и т.д. по счетчику? А не просто пропущен |
Отправлено: 12:00, 30-07-2024 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2721
|
Профиль | Отправить PM | Цитировать @Echo Off &Cls >nul Chcp 1251 Set "BoxIn=Z:\Box_In" rem Set "BoxIn=%~dp0" Pushd "%BoxIn%"||(Echo Folder "%BoxIn%\" not found &Pause &Exit /B 2) For /F "usebackq tokens=1* delims=_" %%f In (`2^>nul Dir /B /A:-D /O:D *_*.*`) Do Call :MyRen "%%f" "%%g" Popd Pause Exit /B :MyRen Set /A i=1 Set "Suff=" :Begin If Not Exist "%~n2%Suff%%~x2" (Ren "%~1_%~2" "%~n2%Suff%%~x2" &Exit /B) Set /A i+=1 Set "Suff=(%i%)" GoTo :Begin Exit /B |
------- Отправлено: 23:28, 31-07-2024 | #12 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:03, 01-08-2024 | #13 |
Ветеран Сообщения: 2721
|
Профиль | Отправить PM | Цитировать eerrrtt32, Вы вроде бы беретесь перерабатывать скрипты под себя, то есть должны понимать смысл написанного.
Итак, в переменной BoxIn содержится путь к Вашей папке. Батник при этом может быть где Вам удобно. Естественно, моя папка с тестовыми файлами к Вам не имеет никакого отношения. И аварийное сообщение Вам на это прямо указывает. Укажите свою. Как альтернатива (закомментированная строка ) если батник и файлы в одной папке. Если нужно так - уберите rem Не считаю хорошей идеей размещать батник и обрабатываемые файлы вместе |
------- Отправлено: 22:22, 01-08-2024 | #14 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать megaloman, больше спасибо! разобрался
|
Отправлено: 01:29, 02-08-2024 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - копирование выбранного файла в определенное место и добавление к имени файла даты | x800 | Скриптовые языки администрирования Windows | 0 | 19-02-2014 20:39 | |
Любой язык - [решено] Как открыть/удалить несколько файлов одного расширения без указания имени файла | 9119 | Скриптовые языки администрирования Windows | 1 | 14-12-2012 15:42 | |
CMD/BAT - [решено] Как из имени файла убрать 11 символов | cdp75 | Скриптовые языки администрирования Windows | 3 | 26-04-2012 06:07 | |
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. | OSArev | Скриптовые языки администрирования Windows | 2 | 30-01-2011 11:58 | |
Длина имени входа пользователя более 20 символов | L_Leorik | Microsoft Windows NT/2000/2003 | 2 | 21-12-2009 13:49 |
|