[Batch/CMD] bat файл для переименования папок соответственно их содержимому

  • Автор темы Автор темы hawker
  • Дата начала Дата начала
  • Теги Теги
    bat
Отлично, рад, что скрипт заработал для вас! Внеслись некоторые изменения в проверку расширений файлов, чтобы учесть различные регистры. Теперь скрипт будет работать с файлами .jpg, .jpeg, .png в любом регистре.

Если у вас возникнут еще вопросы или потребуется дополнительная помощь, пожалуйста, не стесняйтесь обратиться.
изменил также ещё и в этой части:
if !is_video!==true (
ren "%%G" "%%~nG_видео"
)
if !is_photo!==true (
ren "%%G" "%%~nG_фото_!photo_count!"
)
 
изменил также ещё и в этой части:
[/QUOTE]
Отлично, вы внесли изменения в скрипт! Если у вас возникли какие-либо вопросы или проблемы с новой частью скрипта, пожалуйста, предоставьте больше информации, чтобы я мог помочь вам лучше.
 
bat файл по переименованию папок по дате их создания.
Для переименования папок по дате их создания вам понадобится скрипт на языке пакетных файлов (batch script). Вот пример скрипта, который переименовывает папки в формате "ГГГГ-ММ-ДД" по их дате создания:

Код:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "folder_path=E:\test"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%folder_path%\*") do (
    for /f "tokens=1-3 delims=." %%a in ('robocopy "%%G" "%%G" /l /njh /njs /nc /ns /ts /ndl /fp /nc /np') do (
        set "date=%%a"
        set "time=%%b"
    )

    REM Форматируем дату в ГГГГ-ММ-ДД
    set "formatted_date=!date:~0,4!-!date:~4,2!-!date:~6,2!"

    REM Переименовываем подпапку по дате создания
    ren "%%G" "!formatted_date!"
)

Этот скрипт использует команду robocopy для получения даты создания папки и затем форматирует ее в нужный формат "ГГГГ-ММ-ДД". Пожалуйста, убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта.

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

1. Убедитесь, что у вас установлен robocopy. Эта утилита обычно поставляется вместе с операционной системой Windows.

2. Проверьте, что путь к папке folder_path указан правильно и содержит подпапки, которые нужно переименовать.

3. Запустите скрипт и обратите внимание на вывод команды robocopy. Убедитесь, что она возвращает правильные значения даты создания.

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

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "folder_path=E:\test"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%folder_path%\*") do (
    for /f "tokens=2 delims=:" %%a in ('dir "%%G" /tc /ad ^| findstr /c:"<"') do (
        set "date=%%a"
    )

    REM Форматируем дату в ГГГГ-ММ-ДД
    set "formatted_date=!date:~6,4!-!date:~3,2!-!date:~0,2!"

    REM Переименовываем подпапку по дате создания
    ren "%%G" "!formatted_date!"
)

Этот скрипт использует команду dir для получения даты создания папки. После этого дата форматируется в нужный формат "ГГГГ-ММ-ДД" и применяется для переименования папки.

Попробуйте запустить этот скрипт и проверьте, происходит ли переименование папок по дате их создания. Если возникнут какие-либо проблемы или вопросы, пожалуйста, дайте мне знать.
 
Переименовать папки по дате создания и по времени создания.
Для переименования папок по дате и времени их создания вам потребуется немного изменить скрипт. Вот обновленный скрипт, который переименовывает папки в формате "ГГГГ-ММ-ДД_ЧЧ-ММ-СС" по их дате и времени создания:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "folder_path=E:\test"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%folder_path%\*") do (
    for /f "tokens=1-3 delims=." %%a in ('robocopy "%%G" "%%G" /l /njh /njs /nc /ns /ts /ndl /fp /nc /np') do (
        set "date=%%a"
        set "time=%%b"
    )

    REM Форматируем дату и время в ГГГГ-ММ-ДД_ЧЧ-ММ-СС
    set "formatted_datetime=!date:~0,4!-!date:~4,2!-!date:~6,2!_!time:~0,2!-!time:~3,2!-!time:~6,2!"

    REM Переименовываем подпапку по дате и времени создания
    ren "%%G" "!formatted_datetime!"
)

Этот скрипт использует команду robocopy для получения даты и времени создания папки. Далее дата и время форматируются в нужный формат "ГГГГ-ММ-ДД_ЧЧ-ММ-СС" и применяются для переименования папки.

Пожалуйста, убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.
 
Переименовать папки по дате их изменения
Для переименования папок по дате их последнего изменения вам потребуется немного изменить скрипт. Вот обновленный скрипт, который переименовывает папки в формате "ГГГГ-ММ-ДД_ЧЧ-ММ-СС" по их дате последнего изменения:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "folder_path=E:\test"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%folder_path%\*") do (
    for %%H in ("%%G") do set last_modified=%%~tH

    REM Форматируем дату и время последнего изменения в ГГГГ-ММ-ДД_ЧЧ-ММ-СС
    set "formatted_datetime=!last_modified:~6,4!-!last_modified:~3,2!-!last_modified:~0,2!_!last_modified:~11,2!-!last_modified:~14,2!-!last_modified:~17,2!"

    REM Переименовываем подпапку по дате и времени последнего изменения
    ren "%%G" "!formatted_datetime!"
)

Этот скрипт использует команду dir, чтобы получить дату и время последнего изменения папки. Далее дата и время форматируются в нужный формат "ГГГГ-ММ-ДД_ЧЧ-ММ-СС" и применяются для переименования папки.

Пожалуйста, убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.
 
Переименовать папки в формате DD-MM-YY_ЧЧ-ММ по дате их изменения.
Для переименования папок в формате "DD-MM-YY_ЧЧ-ММ" по дате и времени их последнего изменения вам нужно немного изменить скрипт. Вот обновленный скрипт, который делает именно это:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "folder_path=E:\test"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%folder_path%\*") do (
    for %%H in ("%%G") do set last_modified=%%~tH

    REM Форматируем дату и время последнего изменения в DD-MM-YY_ЧЧ-ММ
    set "formatted_datetime=!last_modified:~0,2!-!last_modified:~3,2!-!last_modified:~8,2!_!last_modified:~11,2!-!last_modified:~14,2!"

    REM Переименовываем подпапку по дате и времени последнего изменения
    ren "%%G" "!formatted_datetime!"
)

Этот скрипт использует команду dir, чтобы получить дату и время последнего изменения папки. Далее дата и время форматируются в нужный формат "DD-MM-YY_ЧЧ-ММ" и применяются для переименования папки.

Убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.
 
Переименовать папки в формате DD-MM-YY_ЧЧ-ММ по дате их создания.
Для переименования папок в формате "DD-MM-YY_ЧЧ-ММ" по дате и времени их создания вам нужно немного изменить скрипт. Вот обновленный скрипт, который делает именно это:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "folder_path=E:\test"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%folder_path%\*") do (
    for /f "tokens=1-3 delims=." %%a in ('robocopy "%%G" "%%G" /l /njh /njs /nc /ns /ts /ndl /fp /nc /np') do (
        set "date=%%a"
        set "time=%%b"
    )

    REM Форматируем дату и время создания в DD-MM-YY_ЧЧ-ММ
    set "formatted_datetime=!date:~0,2!-!date:~3,2!-!date:~6,2!_!time:~0,2!-!time:~3,2!"

    REM Переименовываем подпапку по дате и времени создания
    ren "%%G" "!formatted_datetime!"
)

Этот скрипт использует команду robocopy для получения даты и времени создания папки. Далее дата и время форматируются в нужный формат "DD-MM-YY_ЧЧ-ММ" и применяются для переименования папки.

Убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.
 
Удалить в папке X:\test все файлы кроме последнего по дате создания
Для удаления всех файлов в папке, кроме последнего по дате создания, вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно удалить файлы
set "folder_path=X:\test"

REM Переменная для хранения пути к последнему файлу по дате создания
set "latest_file="

REM Находим последний файл по дате создания
for /f "delims=" %%F in ('dir /b /a-d /o-d /tc "%folder_path%"') do (
    if not defined latest_file (
        set "latest_file=%folder_path%\%%F"
    ) else (
        del "%folder_path%\%%F"
    )
)

echo Последний файл по дате создания: %latest_file%

Этот скрипт будет искать последний файл в папке по дате создания и оставлять его нетронутым, удаляя все остальные файлы в папке. Убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта.

Пожалуйста, протестируйте этот скрипт на тестовой папке, чтобы убедиться, что он работает корректно. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Назад
Сверху Снизу