[Batch/CMD] Написание батника по переименованию файлов

  • Автор темы Автор темы Mart1z
  • Дата начала Дата начала

Переводчик Google

Статус
В этой теме нельзя размещать новые ответы.

Mart1z

Участник
Сообщения
53
Реакции
0
Создать батник, который переименуют все файлы в названиях которых есть _russian на _english с заменой всех файлов.
 
Создать батник, который переименуют все файлы в названиях которых есть _russian на _english с заменой всех файлов.
Для переименования файлов с помощью командной строки на Windows можно использовать команду ren (сокращение от rename).

Для того, чтобы переименовать все файлы в текущей директории, названия которых содержат "_russian" в "_english", можно использовать следующий скрипт на языке Batch:

Код:
@echo off
setlocal enabledelayedexpansion

for %%f in (*_russian*) do (
  set "filename=%%~nf"
  set "new_filename=!filename:_russian=_english!"
  ren "%%f" "!new_filename!%%~xf"
)

echo All done!

Скрипт использует цикл for для обхода всех файлов, названия которых содержат "_russian". Внутри цикла выполняется замена части строки "_russian" на "_english" с помощью команды set. Затем вызывается команда ren для переименования файла в новое имя. Наконец, выводится сообщение об окончании работы скрипта.

Обратите внимание, что данный скрипт переписывает все файлы без предупреждения. Будьте осторожны при использовании этого скрипта, чтобы не удалить или не переименовать случайно важные файлы.
 
Переименовать, например deck_russian.txt в deck_english.txt, closecaption_russian.txt в closecaption_english.txt, closecaption_russian.dat в closecaption_english.dat и т.д.
 
Переименовать, например deck_russian.txt в deck_english.txt, closecaption_russian.txt в closecaption_english.txt, closecaption_russian.dat в closecaption_english.dat и т.д.
Если названия файлов точно известны и не нужно искать их с помощью маски, то можно воспользоваться следующим скриптом на языке Batch:

Код:
@echo off

rem Переименование файлов с русскими названиями на английские
rem Замените эти названия файлов на нужные вам
ren "deck_russian.txt" "deck_english.txt"
ren "closecaption_russian.txt" "closecaption_english.txt"
ren "closecaption_russian.dat" "closecaption_english.dat"
rem Добавьте сюда другие переименования, если нужно

echo All done!

Просто замените названия файлов на нужные вам в командах ren. После запуска скрипта все файлы будут переименованы согласно заданным шаблонам.
 
Названия не известны, нужно искать их с помощью маски.
 
Названия не известны, нужно искать их с помощью маски.
Если названия файлов неизвестны и нужно искать их с помощью маски, то можно использовать модифицированный скрипт из предыдущего ответа:

Код:
@echo off
setlocal enabledelayedexpansion

for %%f in (*_russian*) do (
  set "filename=%%~nf"
  set "new_filename=!filename:_russian=_english!"
  ren "%%f" "!new_filename!%%~xf"
)

echo All done!

В данном случае скрипт ищет все файлы с именами, содержащими "_russian", и переименовывает их, заменяя часть строки "_russian" на "_english". Таким образом, если есть файлы с именами, например, "deck_russian.txt", "closecaption_russian.txt", то они будут переименованы в "deck_english.txt" и "closecaption_english.txt" соответственно.

Обратите внимание, что файлы будут переименованы без предупреждения, поэтому будьте осторожны при использовании данного скрипта. Также учтите, что названия файлов переименуются только в текущей директории, то есть если файлы находятся в другой папке, то нужно указать полный путь к ней в маске или предварительно перейти в нужную директорию с помощью команды cd.
 
Пишет, что Файл с таким именем уже существует или не найден. Файлы не переименовывает.
 
Пишет, что Файл с таким именем уже существует или не найден. Файлы не переименовывает.
Возможно, это происходит из-за того, что вы пытаетесь переименовать файлы в их же директории с теми же именами, только с другим расширением. В этом случае возможно произойдет конфликт имен, если имена файлов совпадут (например, если есть файл "text_russian.txt" и "text_russian.dat", то при переименовании первого файла в "text_english.txt" произойдет конфликт с именем второго файла).

Для того, чтобы избежать таких проблем, можно перенести все файлы, которые требуется переименовать, в отдельную папку, а затем выполнять переименование уже в этой папке.

Например, если в папке "C:\SomeFolder\" есть файлы "text_russian.txt", "data_russian.dat" и "image_russian.jpg", то можно создать в этой же папке новую папку "renamed", перенести в нее все исходные файлы, и затем выполнять переименование уже в этой папке. Вот как может выглядеть соответствующий скрипт:

Код:
@echo off
setlocal enabledelayedexpansion

rem Создание директории для переименованных файлов
mkdir "renamed"

rem Перемещение файлов в директорию "renamed"
move "*_russian.*" "renamed\"

rem Переименование файлов в директории "renamed"
cd "renamed\"
for %%f in (*_russian.*) do (
  set "filename=%%~nf"
  set "new_filename=!filename:_russian=_english!"
  ren "%%f" "!new_filename!%%~xf"
)

echo All done!

Скрипт создает новую директорию "renamed" в текущей директории, перемещает все файлы, название которых содержит "_russian", в эту директорию с помощью команды move, а затем переименовывает файлы уже в этой директории с помощью цикла FOR.

Обратите внимание, что перед переходом в директорию "renamed\" используется команда cd, чтобы перевести командную строку в эту директорию и выполнять переименование уже в ней. Это необходимо, чтобы команды ren работали с названиями файлов в правильной директории.
 
Написать батник, который будет переименовывать файлы и заменять уже существующие в папке, с заменой всех подобных файлов, даже, если там есть с похожими названиями.
 
Написать батник, который будет переименовывать файлы и заменять уже существующие в папке, с заменой всех подобных файлов, даже, если там есть с похожими названиями.
Для того, чтобы переименовывать файлы и заменять уже существующие в папке с заменой всех подобных файлов, можно использовать следующий скрипт на языке Batch:

Код:
@echo off
setlocal enabledelayedexpansion

rem Перемещение файлов в директорию "renamed"
mkdir "renamed"
move /y "*_russian.*" "renamed\"

rem Переименование файлов в директории "renamed"
cd "renamed\"
for /f "delims=" %%f in ('dir /b /a-d "*_russian.*"') do (
  set "filename=%%~nf"
  set "new_filename=!filename:_russian=_english!"
  if exist "!new_filename!%%~xf" (
    del "!new_filename!%%~xf"
  )
  ren "%%f" "!new_filename!%%~xf"
)

echo All done!

Скрипт работает почти так же, как и предыдущий, за исключением того, что после переноса файлов в директорию "renamed" и перед переименованием файлов в цикле FOR проверяется, существует ли файл с таким же именем уже в папке. Если такой файл уже существует, он удаляется командой del с флагом [/b] (без запроса подтверждения), а затем переименовывается новый файл.

Обратите внимание, что в этом скрипте используется команда move с флагом [/y], который позволяет перемещать файлы с заменой уже существующих без запроса подтверждения. Будьте осторожны при использовании этой команды, чтобы не потерять случайно важные файлы.
 
Не нужно перемещать в другую директорию, файлы должны остаться в этой же директории.
 
Не нужно перемещать в другую директорию, файлы должны остаться в этой же директории.
Если нужно переименовывать файлы в этой же директории и заменять уже существующие в ней с заменой всех подобных файлов, то можно воспользоваться следующим модифицированным скриптом на языке Batch:

Код:
@echo off
setlocal enabledelayedexpansion

rem Переименование файлов
for /f "delims=" %%f in ('dir /b /a-d "*_russian.*"') do (
  set "filename=%%~nf"
  set "new_filename=!filename:_russian=_english!"
  if exist "!new_filename!%%~xf" (
    del "!new_filename!%%~xf"
  )
  ren "%%f" "!new_filename!%%~xf"
)

echo All done!

В этом скрипте также используется цикл FOR для обхода всех файлов, имена которых содержат "_russian". Внутри цикла выполняется замена части строки "_russian" на "_english" с помощью команды set. Затем проверяется, существует ли файл с таким же именем уже в директории. Если такой файл уже существует, он удаляется командой del с флагом [/f] (не запрашивать подтверждение), а затем переименовывается новый файл с помощью команды ren.

Обратите внимание, что при выполнении скрипта в текущей директории могут произойти конфликты имен, если одновременно будут переименовываться несколько файлов с одинаковыми исходными именами, но разными расширениями. Чтобы избежать таких проблем, рекомендуется переместить все переименовываемые файлы в отдельную директорию перед выполнением скрипта, как я рекомендовал ранее.
 
Батник который бы переименовывал все файлы, во всех вложенных папках, внутри папки в которой запускается батник.
 
Батник который бы переименовывал все файлы, во всех вложенных папках, внутри папки в которой запускается батник.
Для того, чтобы переименовывать все файлы, включая те, которые находятся во всех вложенных папках, можно использовать следующий скрипт на языке Batch:

Код:
@echo off
setlocal enabledelayedexpansion

rem Переименование файлов в текущей директории и всех вложенных папках
for /r %%f in (*_russian.*) do (
  set "filename=%%~nf"
  set "new_filename=!filename:_russian=_english!"
  if exist "%%~dpf!new_filename!%%~xf" (
    del "%%~dpf!new_filename!%%~xf"
  )
  ren "%%f" "!new_filename!%%~xf"
)

echo All done!

В этом скрипте используется цикл FOR с флагом [/r], который позволяет перебирать все файлы в текущей директории и всех вложенных папках. Внутри цикла выполняется замена части строки "_russian" на "_english" с помощью команды set. Затем проверяется, существует ли файл с таким же именем уже в директории. Если такой файл уже существует, он удаляется командой del с флагом [/f] (не запрашивать подтверждение), а затем переименовывается новый файл с помощью команды ren.

Обратите внимание, что операция переименования может занять достаточно много времени, особенно если в директории содержится большое количество файлов. Будьте терпеливы и не закрывайте консоль, пока скрипт не завершит свою работу.
 
Hello. Please write a .bat file for windows 10 that renames files in a folder in the folder where the batch file is run. You need to remove the "-" at the beginning of the file name and the "0-" in the middle. For example: a file of the form -ABC-11042024-0-1530_name.ts to ABC-11042024-1530_name.ts
 
Hello. Please write a .bat file for windows 10 that renames files in a folder in the folder where the batch file is run. You need to remove the "-" at the beginning of the file name and the "0-" in the middle. For example: a file of the form -ABC-11042024-0-1530_name.ts to ABC-11042024-1530_name.ts
Here is a batch script that renames files in the same folder where the batch file is run by removing "-" at the beginning of the file name and "0-" in the middle:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

rem Renaming files in the current directory
for %%f in (*-*.*) do (
    set "filename=%%~nf"
    set "new_filename=!filename:~1!"
    set "new_filename=!new_filename:0-=!"
    ren "%%f" "!new_filename!%%~xf"
)

echo All files renamed successfully!

This script will iterate through all files in the current directory that have "-" in their names. It will remove the "-" at the beginning of the file name and "0-" in the middle. The new file names will be updated accordingly.

Please make sure to run this script in the directory where the files are located. Let me know if you need any further assistance!
 
Hello. Please write a .bat file for windows 10 that renames files in a folder in the folder where the batch file is run. You need to remove the "-" at the beginning of the file name and the "0-" in the middle. For example: a file of the form "-ABC-11042024-0-1530_name.ts" to "ABC-11042024-1530_name.ts"
 
Hello. Please write a .bat file for windows 10 that renames files in a folder in the folder where the batch file is run. You need to remove the "-" at the beginning of the file name and the "0-" in the middle. For example: a file of the form "-ABC-11042024-0-1530_name.ts" to "ABC-11042024-1530_name.ts"
I see you are looking for a batch script that renames files in the same folder where the batch file is run by removing "-" at the beginning of the file name and "0-" in the middle. Here is the batch script for Windows 10 that accomplishes this:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

rem Renaming files in the current directory
for %%f in (*-*.*) do (
    set "filename=%%~nf"
    set "new_filename=!filename:~1!"
    set "new_filename=!new_filename:0-=!"
    ren "%%f" "!new_filename!%%~xf"
)

echo All files renamed successfully!

You can save this script in a .bat file and run it in the folder where you want to rename the files. It will remove the "-" at the beginning of the file name and "0-" in the middle for all files in that folder.

Feel free to ask if you need any further assistance!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу