Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Конечно! Я могу помочь с написанием bat скрипта для переименования подпапок в текущей папке на основе списка. Для этого нам понадобится текстовый файл, в котором будут указаны старые и новые имена папок.нужен bat скрипт, который переименовывал бы все подпапки в текущей папке в соответствии со списком. То есть, он должен искать папку с определенным наименованием, и присваивать ей другое определенное имя, указанное в том же файле.
@echo off
setlocal enabledelayedexpansion
set "list_file=list.txt"
for /f "tokens=1,2 delims=," %%a in (%list_file%) do (
set "old_name=%%a"
set "new_name=%%b"
for /d %%c in ("%old_name%*") do (
set "folder=%%c"
set "new_folder=!folder:%old_name%=%new_name%!"
ren "!folder!" "!new_folder!"
)
)
echo Папки переименованы успешно!
list.txt
, в котором каждая строка содержит старое и новое имя папки, разделенные запятой. Например:old_name1,new_name1
old_name2,new_name2
list.txt
находятся в одной папке перед его запуском. Он будет искать папки с указанными старыми именами в текущей папке и переименовывать их в новые имена.Хорошо, я обновил скрипт, чтобы он запрашивал путь к файлу списка у пользователя. Вот обновленный скрипт:пусть просит путь к файлу list
@echo off
setlocal enabledelayedexpansion
set /p "list_file=Введите путь к файлу списка: "
for /f "tokens=1,2 delims=," %%a in (%list_file%) do (
set "old_name=%%a"
set "new_name=%%b"
for /d %%c in ("%old_name%*") do (
set "folder=%%c"
set "new_folder=!folder:%old_name%=%new_name%!"
ren "!folder!" "!new_folder!"
)
)
echo Папки переименованы успешно!
C:\путь\к\файлу\list.txt
.Извините за возникшие проблемы. Возникла ошибка "Access Denied". Это может произойти, если у вас нет прав доступа к указанному файлу или папке.
Если у вас нет прав доступа для изменения файлов или папок в текущей директории, то вам будет сложно выполнить переименование папок с помощью bat-скрипта.какая альтернатива, без предоставления прав доступа?
import os
list_file = input("Введите путь к файлу списка: ")
with open(list_file, 'r') as file:
for line in file:
old_name, new_name = line.strip().split(',')
for folder in os.listdir('.'):
if os.path.isdir(folder) and folder.startswith(old_name):
new_folder = folder.replace(old_name, new_name)
os.rename(folder, new_folder)
print("Папки переименованы успешно!")
Если у вас нет прав доступа для изменения файлов или папок в текущей директории, есть несколько альтернативных вариантов, которые вы можете рассмотреть:еще варианты
ren
для переименования папок. Например, ren old_folder new_folder
.Доброго времени суток! Я рад, что скрипт №1 помог решить одну из ваших проблем. Чтобы адаптировать скрипт для переименования файлов во всех подпапках, вам нужно внести некоторые изменения.Доброго времени суток. У меня две проблемы, одна из них полностью решена скриптом №1 из этой ветки форума, а вторая подобная первой только переименовывать надо файлы во всех подпапках.
Пробовалпоменять слово "folder" на слово "file" - ничего не получилось.
@echo off
setlocal enabledelayedexpansion
set /p "list_file=Введите путь к файлу списка: "
for /f "tokens=1,2 delims=," %%a in (%list_file%) do (
set "old_name=%%a"
set "new_name=%%b"
for /r %%c in (%old_name%*) do (
set "file=%%c"
set "new_file=!file:%old_name%=%new_name%!"
ren "!file!" "!new_file!"
)
)
echo Файлы переименованы успешно!
Для обхода проблем с кодировкой и вводом пути к файлу списка в bat-скрипте можно воспользоваться другим подходом. Вместо запроса пути у пользователя, можно указать путь к файлу списка непосредственно в самом скрипте.Вместо запроса пути нечитаемый текст, видимо проблема с кодировкой.
@echo off
setlocal enabledelayedexpansion
set "list_file=C:\путь\к\файлу\списка.txt"
for /f "tokens=1,2 delims=," %%a in (%list_file%) do (
set "old_name=%%a"
set "new_name=%%b"
for /r %%c in (%old_name%*) do (
set "file=%%c"
set "new_file=!file:%old_name%=%new_name%!"
ren "!file!" "!new_file!"
)
)
echo Файлы переименованы успешно!
C:\путь\к\файлу\списка.txt
на полный путь к вашему файлу списка. Этот скрипт будет использовать указанный файл списка для переименования файлов во всех подпапках.Вот пример файла списка с конкретными именами файлов и их расширениями:Не работает. Возможно я неправльно заполняею файл со списком. Покажите пример файла с конкретными именами, с расширениями файлов.
old_file1.txt,new_file1.txt
old_file2.docx,new_file2.docx
old_file3.jpg,new_file3.jpg
Давайте попробуем уточнить скрипт, чтобы убедиться, что он правильно обрабатывает изменение расширений файлов. Вот обновленный bat-скрипт, который учитывает изменение расширений файлов:Не работает. Я взял ваш список создал из него файл с расширением .txt изменив после запятой в файлах new_file расширение. Поместил этот файл в одну папку с .bat файлом. После этого создал папку с файлами имена которых взял из списка. после запуска нечего не меняется, расширения остаются теже.
@echo off
setlocal enabledelayedexpansion
set "list_file=%~dp0list.txt"
for /f "tokens=1,2 delims=," %%a in (%list_file%) do (
set "old_name=%%a"
set "new_name=%%b"
for /r %%c in (%old_name%*) do (
set "file=%%c"
set "new_file=!file:%old_name%=!%new_name%"
ren "!file!" "!new_file!"
)
)
echo Файлы переименованы успешно!