Показать полную графическую версию : Переименование файлов
f1rstonlyone@vk
20-12-2017, 14:02
Здравствуйте.
Кратко. Есть папка с файлами типа :
p_name.mdl
p_name.mdl
p_name.mdl
v_name.mdl
v_name.mdl
v_name.mdl
w_name.mdl
w_name.mdl
w_name.mdl
w_name.mdl
Нужно внести дополнительный текст с сохранением существующих имён а именно
p_new text_name.mdl
v_new text_name.mdl
w_new text_name.mdl
Кратко. Есть папка с файлами типа : »
Не может быть каталога со всеми перечисленными файлами единовременно — у многих из них одинаковые имена.
Нужно внести дополнительный текст с сохранением в существующих имён а именно »
По какому принципу? Заменить единственный символ «_» в имени на «_мойтекст_»?
f1rstonlyone@vk
20-12-2017, 14:08
нужно между символами _ _ вставить текст, не более.
Мне не надо менять все название в каждом файле, мне просто надо внести доп. текст между символами что указаны
f1rstonlyone@vk, О каких «вставить между» Вы пишете? В примере имён существующих файлов ровно по одному символу _, и я не представляю, как можно вставить между.
Ещё раз: что заменяем? Единственный символ «_» в имени? И на что меняем. Проще говоря — опишите принцип замены. Или вставки.
f1rstonlyone@vk
20-12-2017, 14:16
Извиняюсь, не выделил символ "_"
проще говоря
p_name.mdl
v_name.mdl
w_name.mdl
в
p_new text_name.mdl
v_new text_name.mdl
w_new text_name.mdl
Фууух… Ладно, воспользуемся методом научного тыка.
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (`2^>nul dir /a:-d /b "*_name.mdl"`) do (
set sName=%%~i
ren "%%~i" "!sName:_=_Мама мыла раму_!"
)
endlocal
exit /b 0
megaloman
20-12-2017, 16:20
@Echo Off
Set "BoxIn=Z:\Box_In"
Set "Mask=*_*.mdl"
Set "Text=У попа была собака"
If Not Exist "%BoxIn%" (Echo Inbox %BoxIn% not found &Pause &Exit /B 1)
Pushd "%BoxIn%"
FOR /F "usebackq tokens=1,2* delims=_" %%i IN (`2^>nul Dir %Mask% /b /A:-D`) DO (
If /I Not "%%j"=="%Text%" (
If "%%k"=="" (
Ren "%%i_%%j" "%%i_%Text%_%%j"
) Else (
Ren "%%i_%%j_%%k" "%%i_%Text%_%%j_%%k"
)
)
)
Popd
Exit /B 0
Маску можно указать и конкретнее. f1rstonlyone@vk, Я не понял, что в имени файла постоянно: p,v,w или name? Если изменяемое name, то можно написать, например:Set "Mask=p_*.mdl v_*.mdl w_*.mdl"
Если name постоянно, то Set "Mask=*_name.mdl"
Укажите в скрипте папку с файлами BoxIn. Если скрипт предполагается помещать в папку с файлами, то указыватьSet "BoxIn=%~dp0"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.