[Batch/CMD] Батник для копирования файлов и каталогов из одной папки к себе

  • Автор темы Автор темы mallish
  • Дата начала Дата начала

mallish

Новый пользователь
Сообщения
19
Реакции
0
bat файл, копирование файлов и каталогов из одной папки туда где он лежит и переименование их по конечному названию пути этой папки
 
bat файл, копирование файлов и каталогов из одной папки туда где он лежит и переименование их по конечному названию пути этой папки
Вы можете использовать следующий bat-скрипт для копирования файлов и каталогов из одной папки в текущую папку и переименования их по конечному названию пути этой папки:

Код:
@echo off
setlocal

set "source_folder=C:\path\to\source\folder"

for /R "%source_folder%" %%F in (*) do (
    set "file_path=%%~F"
    setlocal enabledelayedexpansion
    set "new_name=!file_path:%source_folder%=!"
    set "new_name=!new_name:\=!"
    copy "%%F" "!new_name!"
    endlocal
)

endlocal

В этом скрипте вы должны заменить C:\path\to\source\folder на путь к исходной папке, из которой вы хотите скопировать файлы и каталоги.

Скрипт будет рекурсивно обходить все файлы и каталоги в исходной папке и ее подпапках. Он будет копировать каждый файл или каталог в текущую папку, переименовывая его по конечному названию пути относительно исходной папки.

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

Код:
@echo off
setlocal

set "source_folder=C:\path\to\source\folder"

for /R "%source_folder%" %%F in (*) do (
    set "file_path=%%~F"
    setlocal enabledelayedexpansion
    set "new_name=!file_path:%source_folder%=!"
    set "new_name=!new_name:\=_!"
    set "new_name=!new_name:~1!"
    if not exist "!new_name!" (
        if "%%~aF"=="d" (
            mkdir "!new_name!"
        ) else (
            copy "%%F" "!new_name!"
        )
    )
    endlocal
)

endlocal

В этом скрипте также необходимо заменить C:\path\to\source\folder на путь к исходной папке, из которой вы хотите скопировать файлы и каталоги.

Скрипт будет рекурсивно обходить все файлы и каталоги в исходной папке и ее подпапках. Он будет копировать каждый файл в текущую папку, переименовывая его по конечному названию пути относительно исходной папки. Каталоги также будут создаваться в текущей папке.

Пожалуйста, убедитесь, что вы запускаете скрипт из нужной папки, чтобы файлы и каталоги были скопированы в правильное место.
 
bat файл, копирование файлов и каталогов из одной папки в папку где он лежит и переименование их по конечному названию пути папки где он лежит.
 
bat файл, копирование файлов и каталогов из одной папки в папку где он лежит и переименование их по конечному названию пути папки где он лежит.
Вот bat-скрипт, который копирует файлы и каталоги из исходной папки в папку, где находится сам скрипт, и переименовывает их по конечному названию пути папки, где он лежит:

Код:
@echo off
setlocal

set "source_folder=C:\path\to\source\folder"
set "destination_folder=%~dp0"

for /R "%source_folder%" %%F in (*) do (
    set "file_path=%%~F"
    setlocal enabledelayedexpansion
    set "new_name=!file_path:%source_folder%=!"
    set "new_name=!new_name:\=_!"
    set "new_name=!new_name:~1!"
    if not exist "%destination_folder%!new_name!" (
        if "%%~aF"=="d" (
            mkdir "%destination_folder%!new_name!"
        ) else (
            copy "%%F" "%destination_folder%!new_name!"
        )
    )
    endlocal
)

endlocal

В этом скрипте вам нужно заменить C:\path\to\source\folder на путь к исходной папке, из которой вы хотите скопировать файлы и каталоги.

Скрипт будет рекурсивно обходить все файлы и каталоги в исходной папке и ее подпапках. Он будет копировать каждый файл в папку, где находится сам скрипт, переименовывая его по конечному названию пути относительно исходной папки. Каталоги также будут создаваться в папке скрипта.

Пожалуйста, убедитесь, что вы запускаете скрипт из нужной папки, чтобы файлы и каталоги были скопированы в правильное место.
 
bat файл, копирование файлов и каталогов из одной папки в папку где он лежит и переименование некоторых файлов с определенным расширением по конечному названию пути папки где он лежит.
 
bat файл, копирование файлов и каталогов из одной папки в папку где он лежит и переименование некоторых файлов с определенным расширением по конечному названию пути папки где он лежит.
Вот bat-скрипт, который копирует файлы и каталоги из исходной папки в папку, где находится сам скрипт, и переименовывает файлы с определенным расширением по конечному названию пути папки, где он лежит:

Код:
@echo off
setlocal

set "source_folder=C:\path\to\source\folder"
set "destination_folder=%~dp0"

for /R "%source_folder%" %%F in (*) do (
    set "file_path=%%~F"
    setlocal enabledelayedexpansion
    set "new_name=!file_path:%source_folder%=!"
    set "new_name=!new_name:\=_!"
    set "new_name=!new_name:~1!"
    if "%%~aF"=="d" (
        mkdir "%destination_folder%!new_name!"
    ) else (
        set "extension=%%~xF"
        if "!extension!"==".txt" (
            set "new_name=!new_name!.txt"
            copy "%%F" "%destination_folder%!new_name!"
        ) else (
            copy "%%F" "%destination_folder%!new_name!"
        )
    )
    endlocal
)

endlocal

В этом скрипте вам нужно заменить C:\path\to\source\folder на путь к исходной папке, из которой вы хотите скопировать файлы и каталоги.

Скрипт будет рекурсивно обходить все файлы и каталоги в исходной папке и ее подпапках. Он будет копировать каждый файл и создавать каждый каталог в папке, где находится сам скрипт, переименовывая файлы с расширением ".txt" по конечному названию пути относительно исходной папки. Остальные файлы будут копироваться без изменений.

Пожалуйста, убедитесь, что вы запускаете скрипт из нужной папки, чтобы файлы и каталоги были скопированы в правильное место.
 
Сделай бат файл для создания нескольких папок с разными названиями там где лежит этот бат файл затем копирования в эти папки файлы и папки которые лежат в другом месте и затем переименовать некоторые из этих файлов
 
Сделай бат файл для создания нескольких папок с разными названиями там где лежит этот бат файл затем копирования в эти папки файлы и папки которые лежат в другом месте и затем переименовать некоторые из этих файлов
Конечно! Вот пример bat-скрипта, который создает несколько папок, копирует файлы и папки из другого места и переименовывает некоторые из этих файлов:

Код:
@echo off
setlocal

REM Создание папок
mkdir "Folder1"
mkdir "Folder2"
mkdir "Folder3"

REM Копирование файлов и папок
xcopy "C:\path\to\source\file.txt" "Folder1"
xcopy "C:\path\to\source\folder" "Folder2" /E

REM Переименование файлов
ren "Folder1\file.txt" "newfile.txt"

echo Папки и файлы созданы, скопированы и переименованы.
echo.

endlocal

Вам нужно заменить "C:\path\to\source\file.txt" на путь к файлу, который вы хотите скопировать в Folder1. А "C:\path\to\source\folder" - на путь к папке, которую вы хотите скопировать в Folder2. Если вам нужно переименовать другие файлы, измените соответствующую строку ren "Folder1\file.txt" "newfile.txt".

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

@mallish, пожалуйста, придерживайтесь тематики. Новый вопрос, не связанный с начальным т/з => новая тема.
Часть сообщений перенесена в виде новых тем.
 
Назад
Сверху Снизу