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

  • Автор темы Автор темы hawker
  • Дата начала Дата начала
  • Теги Теги
    bat
Удалить в папке X:\test все файлы кроме последнего по времени создания
 
Удалить в папке 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 /t:c "%folder_path%"') do (
    if not defined latest_file (
        set "latest_file=%folder_path%\%%F"
    ) else (
        del "%folder_path%\%%F"
    )
)

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

Этот скрипт будет искать последний файл в папке по времени создания и оставлять его нетронутым, удаляя все остальные файлы в папке. Убедитесь, что путь к папке 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 /t:c "%folder_path%"') do (
    if not defined latest_file (
        set "latest_file=%%F"
    ) else (
        del "%folder_path%\%%F"
    )
)

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

Этот скрипт должен удалить все файлы в папке, кроме последнего по времени создания. Пожалуйста, убедитесь, что путь к папке folder_path указан правильно перед запуском скрипта. Пожалуйста, попробуйте этот скрипт и дайте мне знать, если возникнут какие-либо проблемы.
 
Переименовать папки в "Y:\1" по DD.MM.YYYY HH.MM их создания
Для переименования папок в формат "DD.MM.YYYY HH.MM" по дате и времени их создания в папке "Y:\1" вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "source_folder=X:\test"
set "destination_folder=Y:\1"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%source_folder%\*") 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.YYYY HH.MM
    set "formatted_datetime=!date:~0,2!.!date:~3,2!.!date:~6,4! !time:~0,2!.!time:~3,2!"

    REM Переименовываем подпапку по дате и времени создания
    ren "%%G" "!formatted_datetime!"
    
    REM Перемещаем переименованную папку в папку "Y:\1"
    move "!formatted_datetime!" "%destination_folder%"
)

Этот скрипт найдет дату и время создания каждой папки в указанной папке, затем переименует папку в формат "DD.MM.YYYY HH.MM" и переместит ее в папку "Y:\1". Убедитесь, что пути к исходной и целевой папкам указаны правильно перед запуском скрипта.

Пожалуйста, протестируйте этот скрипт на тестовой папке, чтобы убедиться, что он работает корректно. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Переименовать папки в "Y:\1" по DD.MM.YYYY HH.MM.SS их создания
Для переименования папок в формат "DD.MM.YYYY HH.MM.SS" по дате и времени их создания в папке "Y:\1" вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "source_folder=X:\test"
set "destination_folder=Y:\1"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%source_folder%\*") 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.YYYY HH.MM.SS
    set "formatted_datetime=!date:~0,2!.!date:~3,2!.!date:~6,4! !time:~0,2!.!time:~3,2!.!time:~6,2!"

    REM Переименовываем подпапку по дате и времени создания
    ren "%%G" "!formatted_datetime!"
    
    REM Перемещаем переименованную папку в папку "Y:\1"
    move "!formatted_datetime!" "%destination_folder%"
)

Этот скрипт найдет дату и время создания каждой папки в указанной папке, затем переименует папку в формат "DD.MM.YYYY HH.MM.SS" и переместит ее в папку "Y:\1". Убедитесь, что пути к исходной и целевой папкам указаны правильно перед запуском скрипта.

Пожалуйста, протестируйте этот скрипт на тестовой папке, чтобы убедиться, что он работает корректно. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Переименовать папки в "Y:\1" по DD.MM.YYYY HH.MM.SS их изменения
Для переименования папок в формат "DD.MM.YYYY HH.MM.SS" по дате и времени их последнего изменения в папке "Y:\1" вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "source_folder=X:\test"
set "destination_folder=Y:\1"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%source_folder%\*") 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.YYYY HH.MM.SS
    set "formatted_datetime=!date:~0,2!.!date:~3,2!.!date:~6,4! !time:~0,2!.!time:~3,2!.!time:~6,2!"

    REM Переименовываем подпапку по дате и времени последнего изменения
    ren "%%G" "!formatted_datetime!"
    
    REM Перемещаем переименованную папку в папку "Y:\1"
    move "!formatted_datetime!" "%destination_folder%"
)

Этот скрипт найдет дату и время последнего изменения каждой папки в указанной папке, затем переименует папку в формат "DD.MM.YYYY HH.MM.SS" и переместит ее в папку "Y:\1". Убедитесь, что пути к исходной и целевой папкам указаны правильно перед запуском скрипта.

Пожалуйста, протестируйте этот скрипт на тестовой папке, чтобы убедиться, что он работает корректно. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Переименовать папки с файлами по дате создания папок
Для переименования папок вместе с их содержимым (файлами) в формат "DD.MM.YYYY HH.MM.SS" по дате создания папок в папке "Y:\1" вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке, в которой нужно выполнить переименование
set "source_folder=X:\test"
set "destination_folder=Y:\1"

REM Создаем временную директорию для перемещения файлов
set "temp_folder=%temp%\temp_folder"
mkdir "%temp_folder%"

REM Перебираем все подпапки в указанной папке
for /d %%G in ("%source_folder%\*") 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.YYYY HH.MM.SS
    set "formatted_datetime=!date:~0,2!.!date:~3,2!.!date:~6,4! !time:~0,2!.!time:~3,2!.!time:~6,2!"

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

    REM Перемещаем содержимое переименованной папки во временную директорию
    move "%%G\*" "%temp_folder%"

    REM Перемещаем переименованную папку в папку "Y:\1"
    move "!formatted_datetime!" "%destination_folder%"
)

REM Удаляем временную директорию
rmdir /s /q "%temp_folder%"

Этот скрипт найдет дату и время создания каждой папки в указанной папке, затем переименует папку в формат "DD.MM.YYYY HH.MM.SS", переместит ее в папку "Y:\1" вместе с содержимым (файлами) и удалит временную директорию. Убедитесь, что пути к исходной и целевой папкам указаны правильно перед запуском скрипта.

Пожалуйста, протестируйте этот скрипт на тестовой папке, чтобы убедиться, что он работает корректно. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Переименовать папки в папке Y:\1 по времени их создания
Для переименования папок в папке "Y:\1" по времени их создания вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

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

REM Перебираем все папки в указанной папке
for /d %%G in ("%source_folder%\*") do (
    for /f "tokens=1-3 delims=/: " %%a in ('dir /tc "%%G" ^| find "%%~nG"') do (
        set "date=%%c%%b%%a"
        set "time=%%d%%e%%f"
    )

    REM Форматируем дату и время создания в HHMMSS
    set "formatted_datetime=!time!"

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

Этот скрипт найдет время создания каждой папки в папке "Y:\1", затем переименует папку в формате времени "HHMMSS". Убедитесь, что путь к исходной папке "Y:\1" указан правильно перед запуском скрипта.

Пожалуйста, протестируйте этот скрипт на тестовой папке, чтобы убедиться, что он работает корректно. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.
 
Переименовать все папки в T:\Foto\ по дате создания. В папках, где есть файлы, вывести в имя папки расширения файлов.
 
Переименовать все папки в T:\Foto\ по дате создания. В папках, где есть файлы, вывести в имя папки расширения файлов.
Для переименования всех папок в "T:\Foto\" по дате создания, а также добавления расширения файлов в имя папки в случае наличия файлов внутри, вам потребуется скрипт на языке командной строки. Ниже приведен пример скрипта, который можно использовать для этой цели:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

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

REM Перебираем все папки в указанной папке
for /d %%G in ("%source_folder%\*") do (
    set "has_files=false"
    for %%F in ("%%G\*") do set "has_files=true"

    for /f "tokens=1-3 delims=/: " %%a in ('dir /tc "%%G" ^| find "%%~nG"') do (
        set "date=%%c%%b%%a"
    )

    REM Форматируем дату создания в формат "DDMMYYYY"
    set "formatted_date=!date:~0,2!!date:~3,2!!date:~6,4!"

    REM Добавляем расширение файлов в имя папки, если есть файлы внутри
    if !has_files! equ true (
        for %%X in ("%%G\*") do (
            set "extension=%%~xX"
            ren "%%G" "!formatted_date!_!extension:~1!"
        )
    ) else (
        ren "%%G" "!formatted_date!"
    )
)

Этот скрипт переименует все папки в "T:\Foto\" по дате создания. Если в папке есть файлы, скрипт добавит расширение файлов в имя папки. Убедитесь, что путь к исходной папке "T:\Foto\" указан правильно перед запуском скрипта.

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