Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
5 / 2 / 3
Регистрация: 28.10.2019
Сообщений: 87
1

Ежедневное переименование файлов в папке

25.02.2020, 06:53. Показов 2051. Ответов 22

Author24 — интернет-сервис помощи студентам
У меня такая беда. Задали задание: "Есть папка, в ней находится excel файл с названием '1' . Он всё время дополняется. В конце каждого дня ( в 21:00 ) к имени этого Excel-файла должна прибавляться единица. [т.е завтра файл будет уже назван - 2, после завтра - 3 итд.]. я знаю как реализовать ежедневный цикл - Через Планировщик задач, запускать .bat файл с кодом. В чем вопрос? Я не знаю как написать код. Как сделать, чтобы имя файла всё время изменялось и прибавлялось на 1? Помогите пожалуйста, очень срочно нужно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2020, 06:53
Ответы с готовыми решениями:

Переименование файлов в папке
Доброго времени суток! Помогите написать батник, чтобы автоматически менял имя файла, который...

Переименование файлов в папке
есть какие то файлы в папке например dsfgsdf.rwer fsdff.tret 453535.ertre...

Переименование несколько файлов с абракадоброй в одной папке
В папке есть большое количество файлов (их на самом деле еще больше... но в другой папке...). Вот...

Перемещение и переименование всех файлов в папке с расширением .json
Нужно сделать батник, чтобы он переносил файлы с расширением .json из папки А в папку В, и добавлял...

22
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,352
25.02.2020, 07:14 2
Windows Batch file
1
@cmd /q/v/c "for /f "delims=" %%x in ('where С:\Path\to:*.xls') do >nul set/a c=%%~nx+1 &ren "%%x" !c!%%~xx"
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
25.02.2020, 12:48 3
Добрый день! При условии, что данный файл в папке единственный и bat-ник запускается непосредственно из каталога:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
setlocal enabledelayedexpansion
for %%i in (*.xls) do (
    echo %%i>1.txt
)
for /f "tokens=1 delims=." %%i in (1.txt) do (
    set /A number_before=%%i
    set /A number_after=!number_before!+1
)
for %%i in (*.xls) do (
    ren %%i !number_after!.xls
)
del 1.txt
P.S. Батник, соответственно, запихнуть в планировщик
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,352
25.02.2020, 12:50 4
Karen87, зачем изобретать костыльный велосипед (три цикла с запихиванием во временный файл), если я дал локаничное решение? И из планировщика ваш код не сработает по очевидной причине.
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
25.02.2020, 12:55 5
Цитата Сообщение от FlasherX Посмотреть сообщение
зачем изобретать костыльный велосипед
Я лишь предложил свой вариант, не претендуя на его эталонность или это противоречит правилам форума?
Цитата Сообщение от FlasherX Посмотреть сообщение
И из планировщика ваш код не сработает по очевидной причине
Согласен. Код с учётом каталога, в котором находится файл:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
setlocal enabledelayedexpansion
cd C:\papka
for %%i in (*.xls) do (
    echo %%i>1.txt
)
for /f "tokens=1 delims=." %%i in (1.txt) do (
    set /A number_before=%%i
    set /A number_after=!number_before!+1
)
for %%i in (*.xls) do (
    ren %%i !number_after!.xls
)
del 1.txt
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,352
25.02.2020, 12:59 6
Цитата Сообщение от Karen87 Посмотреть сообщение
Я лишь предложил свой вариант
А зачем предлагать заведомо худший вариант?
Цитата Сообщение от Karen87 Посмотреть сообщение
Код с учётом каталога, в котором находится файл:
cd /d или pushd должно быть. Не забываем про разные диски.
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
25.02.2020, 13:05 7
Цитата Сообщение от FlasherX Посмотреть сообщение
А зачем предлагать заведомо худший вариант?
Я думаю стоит начать с того, что вариант рабочий, а то, что он хуже Вашего... Ну я отрицать не буду. В данной ситуации я преследую 2 цели:
1) Помочь человеку
2) Развить свои навыки
Цитата Сообщение от FlasherX Посмотреть сообщение
Не забываем про разные диски
Уж в этой строчке я думаю автор темы разберётся, хотя конечно соглашусь с Вами
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,352
25.02.2020, 13:18 8
Цитата Сообщение от Karen87 Посмотреть сообщение
Я думаю стоит начать с того, что вариант рабочий, а то, что он хуже Вашего...
Думаю, не стоит вообще начинать ни того, ни с другого. Плохая помощь уместна там, где нет никакой иной. Для тренировок на плохих примерах есть личный компьютер. После отточения навыков добро пожаловать.
Цитата Сообщение от Karen87 Посмотреть сообщение
Уж в этой строчке я думаю автор темы разберётся
Вы же сразу не разобрались, новобранцу дойти до этого ещё сложнее. Местных примеров масса...
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
25.02.2020, 13:41 9
Цитата Сообщение от FlasherX Посмотреть сообщение
Плохая помощь уместна там
Почему так категорично? Плохая помощь - это помощь, после которой не получен нужный эффект, эффект отрицательный либо вообще отсутствует. По-моему, результат после выполнения Вашего и моего сценария одинаковый. При всём глубоком уважении к Вам Вы неправы
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
25.02.2020, 14:19 10
Цитата Сообщение от Karen87 Посмотреть сообщение
или это противоречит правилам форума?
Правилам нет, а рекомендациям да: Как правильно и грамотно отвечать на вопросы (3, 4 и 7 абзацы)


Добавлено через 3 минуты
Цитата Сообщение от Karen87 Посмотреть сообщение
Почему так категорично?
Помните как в фильме "С легким паром", Брыльская (после реплики Мягкова: "Ошибки врачей дорого стоят") говорит: "Наши ошибки менее заметны вначале, но в конечном итоге обходятся не менее дорого"
1
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
25.02.2020, 14:19 11
Цитата Сообщение от alpap Посмотреть сообщение
а рекомендациям да
А в чём, собственно, противоречие?
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
25.02.2020, 14:21 12
Непонимание или упорство? Уж лучше первое ...
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
25.02.2020, 14:23 13
Мы все здесь собрались для того, чтобы решить задачу, которая имеет вполне определенный ответ. Как известно, есть задачи, имеющие более одного варианта решения. Каждый из нас предложил свой, прошу заметить рабочий вариант. Честно, мне совсем неясна Ваша позиция в отношении меня.
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,352
25.02.2020, 15:51 14
Лучший ответ Сообщение было отмечено twitzz как решение

Решение

Цитата Сообщение от Karen87 Посмотреть сообщение
в отношении меня.
Не вас, а вашей позиции.
Цитата Сообщение от FlasherX Посмотреть сообщение
если я дал локаничное решение
Кстати, я и сам поспешил. where тут ни к чему:
Windows Batch file
1
@cmd /q/v/c "for %%x in ("С:\Path To\*.xls") do >nul set/a c=%%~nx+1 &ren "%%x" !c!%%~xx"
Разве что при наличии там же неномерных xls:
Windows Batch file
1
@cmd /q/v/c "for /f "delims=" %%x in ('where "С:\Path To:*.xls"^|findstr \\[1-9][0-9]*\.xls$') do >nul set/a c=%%~nx+1 &ren "%%x" !c!%%~xx"
1
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
26.02.2020, 11:32 15
Цитата Сообщение от Karen87 Посмотреть сообщение
мне совсем неясна Ваша позиция в отношении меня
Вашими же словами
Цитата Сообщение от Karen87 Посмотреть сообщение
Плохая помощь - ..., эффект отрицательный
мало того что код в п3 "ненормально раздут" так еще запущенный пользователем не имеющем права админа из планировщика будет выполнен не с среде расположения bat, а среде расположения cmd.exe, т.е. в папке system32. И к чему это приведет? Не страшно?
Человек решает более-менее серьезную задачу, хочет получит и рабочий и лаконичный код при этом слабо соображая в этом и не сможет отличить чьи-то попытки потренироваться от полезного кода. Как в "Операции Ы" - тренируйтесь на кошках, в данном случае студентах, вот им точно не для работы нужен код и ничего страшного не будет и им полезно - разгребать ваши ошибки, глядишь чему-то научатся кроме как задание переписывать (а то и просто фотографировать) на форум. Я совсем ничего против вас не имею, все мы были дилетантами и хотели показать свое мастерство чуть научившись чему-то, но надо или досконально проверять свой код на живом примере и в разных вариантах желательно пока нет опыта или не лезть в задачи которые нужны для дела.


Добавлено через 9 минут

Не по теме:

P.S.
здесь, кстати, я ответ в п7 человеку дал потому что жалко его стало после ваших кодов почти в 100 строк, а он просил именно сократить, у него все работало. Но после моих 5-ти строк кода вы продолжили свое изобретение, вместо подумать - а может я что-то делаю не так?

1
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
26.02.2020, 12:44 16
Цитата Сообщение от alpap Посмотреть сообщение
мало того что код в п3 "ненормально раздут" так еще запущенный пользователем не имеющем права админа из планировщика будет выполнен не с среде расположения bat, а среде расположения cmd.exe, т.е. в папке system32. И к чему это приведет? Не страшно?
Если Вы обратили внимание, то в п. 5 я ошибку исправил. Вы ошибок не совершаете?
Цитата Сообщение от alpap Посмотреть сообщение
Человек решает более-менее серьезную задачу, хочет получит и рабочий и лаконичный код
Где в его просьбе хоть слово о лаконичности кода? Код рабочий на 100%, пусть и не лаконичный. О целях участия в данной теме я писал выше.
Цитата Сообщение от alpap Посмотреть сообщение
кстати, я ответ в п7 человеку дал потому что жалко его стало после ваших кодов почти в 100 строк
А я руководствовался желанием помочь. Человек оценил помощь.
0
alpap
26.02.2020, 13:24
  #17

Не по теме:

Цитата Сообщение от Karen87 Посмотреть сообщение
Вы ошибок не совершаете?
Да все ошибки совершают, но .... Когда я имел еще мало опыта я умел и признавать ошибки, но самое главное, если я пытаясь помочь видел в ходе этого код более опытного участника форума и видел что код удачнее, компактнее и видел опыт этого человека по отзывам, я, не будучи уверенным даже на 70% что мой код подойдет откровенно и говорил ТС - Я не уверен в своем коде, хотите пробуйте, но лучше используйте код вот этого участника если надежность на первом месте.

0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
26.02.2020, 14:56 18
Цитата Сообщение от alpap Посмотреть сообщение
Когда я имел еще мало опыта я умел и признавать ошибки
Ошибки я свои признавал и исправлял, можете это лицезреть, если почитаете
Цитата Сообщение от alpap Посмотреть сообщение
Я не уверен в своем коде, хотите пробуйте
В теме про "100 строк кода" к своему коду я приложил фразу "Я вижу это так"...
1
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
26.02.2020, 15:56 19
Цитата Сообщение от Karen87 Посмотреть сообщение
можете это лицезреть
больше вижу упрямства, ну да ладно, не в этом суть, а вот в чем
Цитата Сообщение от Karen87 Посмотреть сообщение
Код рабочий на 100%
Конкретно для этого случая и при таких условиях - допустим и то сильно не всматривался.
И это для обобщения чтобы было понятно из-за чего сыр-бор.
Мы в разделе bat/cmd, инструмента примитивного и уже очень древнего, поэтому писать серьезные, а главное масштабные коды на cmd ненормально и неправильно, есть альтернативы для этого и исходя из этого
Цитата Сообщение от Karen87 Посмотреть сообщение
Где ... хоть слово о лаконичности кода?
уже не требование TC, а норма для любых запросов, в более сложных кодах и на cmd новичок не разберется, а так нужно как подспорье для быстрого решения и что-то негабаритное и простое чтобы забравшись в справку можно было самому в этом коде что-либо изменить под свои нужды не прибегая каждый раз за помощью по мелочам опять на форум.
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,510
26.02.2020, 16:07 20
Цитата Сообщение от alpap Посмотреть сообщение
уже не требование TC, а норма для любых запросов, в более сложных кодах и на cmd новичок не разберется, а так нужно как подспорье для быстрого решения и что-то негабаритное и простое чтобы забравшись в справку можно было самому в этом коде что-либо изменить под свои нужды не прибегая каждый раз за помощью по мелочам опять на форум.
Вот с этим я может и соглашусь. Всего лишь можно было объяснить Вашу позицию именно так, а не бросать в человека, который решил помочь и помог грязью. Это я о "плохой помощи"
0
26.02.2020, 16:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2020, 16:07
Помогаю со студенческими работами здесь

Переименование первых подпапок в каждой папке
Можно ли создать батник который входил в некую Главную папку, имеющую множество подпапок с разными...

Переименование PDF-файлов в имена, берущиеся из содержимого этих файлов
Всем доброго времени суток!:) Подскажите, пожалуйста, как переименовать файл с расширением pdf,...

Переименование файлов именами существующих файлов
Доброго времени суток! Помогите, пожалуйста, решить задачу. Не программист, сам бат-ники писать их...

Переименование файлов в папках с добавлением к именам этих файлов имён этих папок
Есть 4 папки с архивом записей с камеры видеонаблюдения с именами 13 14 15 16. В каждой папке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru