Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
[Batch/CMD] Переименование папок а также файлов формата .vmt и .mdl
Здравствуйте, может сможете подсказать. Нужен .bat файл, который помещается в папку, и далее работает только с этой папкой:
1. Найдет и переименуют все папки с названием test1 на test2
2. Найдет файлы формата: .vmt и .mdl , в них найдет тот же test1 и заменит на тот же test2, сохранит
Здравствуйте, может сможете подсказать. Нужен .bat файл, который помещается в папку, и далее работает только с этой папкой:
1. Найдет и переименуют все папки с названием test1 на test2
2. Найдет файлы формата: .vmt и .mdl , в них найдет тот же test1 и заменит на тот же test2, сохранит
Конечно, я могу помочь с созданием такого .bat файла. Вот пример скрипта, который будет выполнять указанные вами действия:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d %%d in (test1*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
ren "%%d" "!new_folder!"
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line! >> "%%~dpf!new_file!%%~xf"
endlocal
)
)
echo Готово!
Прежде чем запустить этот скрипт, убедитесь, что он находится в той же папке, где находятся папки, которые нужно переименовать, а также файлы .vmt и .mdl, в которых нужно выполнить замену.
Скрипт начинается с переименования папок. Он ищет все папки, название которых начинается с "test1", и заменяет "test1" на "test2" в названии каждой папки.
Затем скрипт переходит к поиску и замене в файлах .vmt и .mdl. Он обходит все файлы с расширениями .vmt и .mdl в текущей папке и всех вложенных папках. Для каждого файла он читает каждую строку и выполняет замену "test1" на "test2" в каждой строке. Затем он записывает измененную строку в новый файл с тем же именем, но с добавлением "test2" в название файла.
После выполнения скрипта вы увидите сообщение "Готово!".
Обратите внимание, что этот скрипт не делает резервную копию файлов перед изменением. Убедитесь, что у вас есть резервная копия важных файлов перед запуском скрипта.
Приношу извинения за предоставленный скрипт. Вот исправленная версия, которая должна работать правильно:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d %%d in (test1*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
ren "%%d" "!new_folder!"
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
set "temp_file=%%~dpnf.tmp"
(
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line!
endlocal
)
) > "!temp_file!"
move /y "!temp_file!" "%%~dpnf%%~xf"
)
echo Готово!
Пожалуйста, попробуйте эту исправленную версию. Она должна корректно переименовывать папки и выполнять замену в файлах .vmt и .mdl. После выполнения скрипта вы увидите сообщение "Готово!".
Если у вас все еще возникают проблемы, пожалуйста, уточните, какие ошибки или сообщения об ошибках вы получаете при запуске скрипта. Это поможет мне лучше понять проблему и предоставить дальнейшую помощь.
Приношу извинения за предоставленный скрипт. Вот исправленная версия, которая должна работать правильно:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d %%d in (test1*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
ren "%%d" "!new_folder!"
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
set "temp_file=%%~dpnf.tmp"
(
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line!
endlocal
)
) > "!temp_file!"
move /y "!temp_file!" "%%~dpnf%%~xf"
)
echo Готово!
Пожалуйста, попробуйте эту исправленную версию. Она должна корректно переименовывать папки и выполнять замену в файлах .vmt и .mdl. После выполнения скрипта вы увидите сообщение "Готово!".
Если у вас все еще возникают проблемы, пожалуйста, уточните, какие ошибки или сообщения об ошибках вы получаете при запуске скрипта. Это поможет мне лучше понять проблему и предоставить дальнейшую помощь.
Приношу извинения за путаницу. Вот исправленная версия скрипта, которая должна правильно переименовывать папки:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d %%d in (*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
if not "!folder!"=="!new_folder!" (
ren "%%d" "!new_folder!"
)
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
set "temp_file=%%~dpnf.tmp"
(
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line!
endlocal
)
) > "!temp_file!"
move /y "!temp_file!" "%%~dpnf%%~xf"
)
echo Готово!
Попробуйте использовать эту исправленную версию скрипта. Она должна правильно переименовывать папки, а также выполнять замену в файлах .vmt и .mdl. После выполнения скрипта вы увидите сообщение "Готово!".
Если у вас все еще возникают проблемы, пожалуйста, уточните, какие ошибки или сообщения об ошибках вы получаете при запуске скрипта. Это поможет мне лучше понять проблему и предоставить дальнейшую помощь.
Приношу извинения за путаницу. Вот исправленная версия скрипта, которая должна правильно переименовывать папки:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d %%d in (*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
if not "!folder!"=="!new_folder!" (
ren "%%d" "!new_folder!"
)
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
set "temp_file=%%~dpnf.tmp"
(
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line!
endlocal
)
) > "!temp_file!"
move /y "!temp_file!" "%%~dpnf%%~xf"
)
echo Готово!
Попробуйте использовать эту исправленную версию скрипта. Она должна правильно переименовывать папки, а также выполнять замену в файлах .vmt и .mdl. После выполнения скрипта вы увидите сообщение "Готово!".
Если у вас все еще возникают проблемы, пожалуйста, уточните, какие ошибки или сообщения об ошибках вы получаете при запуске скрипта. Это поможет мне лучше понять проблему и предоставить дальнейшую помощь.
Приношу извинения за предоставленные скрипты. Вот исправленная версия, которая должна правильно переименовывать папки:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d %%d in (*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
if not "!folder!"=="!new_folder!" (
pushd "%%d"
ren "%%d" "!new_folder!"
popd
)
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
set "temp_file=%%~dpnf.tmp"
(
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line!
endlocal
)
) > "!temp_file!"
move /y "!temp_file!" "%%~dpnf%%~xf"
)
echo Готово!
Попробуйте использовать эту исправленную версию скрипта. Она должна правильно переименовывать папки, а также выполнять замену в файлах .vmt и .mdl. После выполнения скрипта вы увидите сообщение "Готово!".
Если у вас все еще возникают проблемы, пожалуйста, уточните, какие ошибки или сообщения об ошибках вы получаете при запуске скрипта. Это поможет мне лучше понять проблему и предоставить дальнейшую помощь.
@echo off
setlocal disableDelayedExpansion
set "old=test1"
set "new=test2"
for /f "delims=" %%F in ('dir /b /s *. *.ods ^| sort /r') do (
set "source=%%F"
set "oldname=%%~nxF"
setlocal enableDelayedExpansion
set "newname=!oldname:%old%=%new%!"
if /i "!newname!" neq "!oldname!" (
echo ren "!source!" "!newname!"
ren "!source!" "!newname!"
)
endlocal
)
Приношу извинения за предыдущие проблемы. Вот исправленная версия скрипта, которая должна правильно переименовывать папки и выполнять замену в файлах .vmt и .mdl:
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
rem Переименование папок
for /d /r %%d in (*) do (
set "folder=%%~nd"
set "new_folder=!folder:test1=test2!"
if not "!folder!"=="!new_folder!" (
pushd "%%~dpd"
ren "%%~nxd" "!new_folder!"
popd
)
)
rem Поиск и замена в файлах .vmt и .mdl
for /r %%f in (*.vmt *.mdl) do (
set "file=%%~nf"
set "new_file=!file:test1=test2!"
set "temp_file=%%~dpnf.tmp"
(
for /f "usebackq tokens=*" %%l in ("%%f") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "line=!line:test1=test2!"
echo !line!
endlocal
)
) > "!temp_file!"
move /y "!temp_file!" "%%~dpnf%%~xf"
)
echo Готово!
Попробуйте использовать эту исправленную версию скрипта. Она должна правильно переименовывать папки и выполнять замену в файлах .vmt и .mdl. После выполнения скрипта вы увидите сообщение "Готово!".
Если у вас все еще возникают проблемы, пожалуйста, уточните, какие ошибки или сообщения об ошибках вы получаете при запуске скрипта. Это поможет мне лучше понять проблему и предоставить дальнейшую помощь.