Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоComboВсе проекты

Помогите в написании .bat файла

Pavel Ученик (109), закрыт 1 месяц назад
Всем добрый день, есть структура сайта:
к примеру site.ru/login.html
А у меня файлы на компьютере сохранились в таком порядке:
site.ru/login/index.html
где (login - это папка, а index.html - это файл с кодом страницы login.)
Нужна помощь в написании Батника, который должен взять файл index.html переименовать его в название папки, в которой он лежит. И переместить файл уже login.html на папку назад.
Таких файлов в каталоге 10 тысяч и руками переносить никак не вариант.
По названиям папок и файлов я написал для примера. Файлы и папки могут быть абсолютно с разным названием
Помогите плз, всю голову сломал
Лучший ответ
Алекс Куха Высший разум (385301) 1 месяц назад
- может не назад, а вверх?
- после переименования, файла с именем login.html уже не существует, поэтому и перемещать нечего
- перебор папок делается for /D ...переименование с копированием - move. там всё предельно просто. Даже не представляю, где там можно "голову сломать"
PavelУченик (109) 1 месяц назад
Да, перенести вверх.
Батник по переименованию я уже написал. Осталось только вверх на 1 папку переместить файлы с расширением .html
Может сможете с этим помочь, написать файл? ПЛЗЗЗ
Алекс Куха Высший разум (385301) Pavel, move .\login\file.html .\ предполагается, что запуск производится в папке с папками site.*
PavelУченик (109) 1 месяц назад
Полностью сможете написать? от начала и до конца, я вам закину денежку куда скажете
времени разбираться совсем нету ( Торопят на работе...
Алекс Куха Высший разум (385301) Pavel, пока задание не пойму, не смогу
PavelУченик (109) 1 месяц назад
пробую сек
PavelУченик (109) 1 месяц назад
понял, тогда спасибо большое за помощь! Прям спасли
Сергей ВыркоГуру (4490) 1 месяц назад
А можно финальный батник в студию?
Алекс Куха Высший разум (385301) Сергей Вырко, так то ж той строкой с копированием он и ограничился, а переименование, что в вашем решении решили пока пренебречь. Но оно делается именно в Вашем варианте
Сергей ВыркоГуру (4490) 1 месяц назад
Оно как бы понятно, но для потенциальных читателей этого ответа с похожей проблемой неплохо бы чистовой вариант видеть хотя бы в комментариях.
Алекс Куха Высший разум (385301) Сергей Вырко, он написан в чистом виде. От себя добавлю - тестировал. см. выше 2ч назад
Остальные ответы
Сергей Вырко Гуру (4490) 1 месяц назад
Setlocal EnableDelayedExpansion
@echo off
set "fromDir=c:\1"
set "destDir=c:\1"
for /d %%d in ("%destDir%\*") do (set copyto=%%d& set name=%%~nd
move "%fromDir%\!name!\index.html" "%destDir%\!name!.html"
)
pause
В этом рабочем примере в папке c:\1 находятся папки login1, login2 и т. д. (в общем любые произвольные имена), из которых берутся файлы index.html и переименовываются/переносятся в папку c:\1 с именами login1.html, login2.html и т. д. В вашем случае c:\1 будет site.ru. (Примечание: без EnableDelayedExpansion не работает, без восклицательных знаков \!name! не работает.)
Похожие вопросы