Пакетні команди Windows для копіювання файлів до декількох підкаталогів


1

У мене є 2 файли file1.txt і file2.txt що я хочу скопіювати в структуру папок, наприклад

parentfolder
    subfolder1
         destinationfolder
    subfolder2
         destinationfolder
    subfolder3
         destinationfolder
    subfolder4
         destinationfolder
    subfolder5
         destinationfolder

де file1.txt і file2.txt йдуть до каталогу призначення. Також імена підпапка (NUM) є унікальними і непослідовними.

Чи є спосіб автоматизувати це завдання копіювання та вставки?


Чи всі папки призначення мають однакову назву?
Karan

Так, папки призначення мають однакову назву, тільки імена вкладених папок є унікальними
wjason94

Відповіді:


2

Оскільки папки є унікальними і не послідовними, я припускаю, що ви заздалегідь знаєте, що вони є.

Ви можете використовувати xcopy для цього або robocopy

Це з xcopy

xcopy "c:\myfile.txt" "c:\parent\subfolder1\" /z /i
xcopy "c:\myfile.txt" "c:\parent\subfolder2\" /z /i 
xcopy "c:\myfile.txt" "c:\parent\subfolder3\" /z /i
xcopy "c:\myfile.txt" "c:\parent\subfolder4\" /z /i
xcopy "c:\myfile.txt" "c:\parent\subfolder5\" /z /i

xcopy "c:\myfile2.txt" "c:\parent\subfolder1\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder2\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder3\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder4\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder5\" /z /i

Збережіть код у блокноті та збережіть як. Назвіть його Copy.bat (зверніть увагу на .bat), запустіть його. Готово.


Дякуємо за швидку відповідь! Схоже, мені доведеться жорстко кодувати імена підпапок у сценарії. Чи не існує способу використовувати маски для вказівки на назву підтеки? Імена вкладених папок на зразок "abc", "xyz", "ohi" і т.д.
wjason94

Ні, ви не можете це зробити, але є деякі робочі місця - stackoverflow.com/questions/8609028/…
Dave

1

Цей пакетний файл повинен подбати про вашу вимогу після правильного редагування шляхів і назв папок:

@echo off
for /r "drive:\path\to\parentfolder" %%d in (.) do (
    if "%%~nd"=="destinationfolder" (
        xcopy "drive:\path\to\file 1.txt" "%%~d"
        xcopy "drive:\path\to\file 2.txt" "%%~d"
    )
)

Чи повинен "%% ~ nd" означати, якщо у будь-якому каталозі в папці-папці є каталог призначених папок? Чи вказує ~ вказувати, що піде 1 рівень глибше в каталог?
wjason94

"Чи повинен" %% ~ nd "означати, чи є в каталозі папки призначення будь-який каталог всередині батьківської папки?" - Так. "Чи вказує символ ~ піти на 1 рівень глибше в каталог?" - Ні, він просто знімає лапки. Подивитися for /? для більш. Чому Ви запитуєте? У вас є інші вкладені папки батьківської папки, які також мають папку призначення всередині, але де ви робите ні хочете, щоб файли були скопійовані?
Karan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.