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

C:\1\1.txt
C:\2\2.txt
C:\3\3.txt

Я хотел бы переместить элемент в d:\1\1.txt и d:\2\2.txt и т.д.

Какой простой способ сделать это? У меня есть более 100 тыс. Файлов, которые необходимо переместить из определенных папок в исходном месте в другое место, сохранив при этом структуру

У меня сейчас есть список предметов, которые нужно переместить

2 ответа2

5

Конечно, возможно с некоторой магией PowerShell, но я думаю, что лучшее, что вы можете сделать, это использовать Robocopy для такой задачи. Он создан для этого, супер-быстрый (многопоточный), имеет много отчетов об ошибках и встроенные вещи, и он не подведет вас.

1

Если вам нужно решение Powershell, вы можете попробовать что-то вроде этого:

# Load folder structure into memory
$folder = "C:\1\"
$files = gci $folder -r  

# Loop through each file in the folder structure
foreach ($file in $files)
{
    # Declare new folder structure by name
    $newpath = ($file.path -replace "^.","D")  # Replace C with D

    # Create the folder if it doesn't exist
    if (!(test-path $newpath)) {mkdir $newpath -f}

    # Copy the file to the new path
    cp $file $newpath$file.name -force
}

Это должна быть довольно эффективная операция, поскольку она содержит всего несколько простых команд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .