2015-12-02 7 views
0

Мне нужно переместить папки и их структуру в другое место. Я не знаю названия этих папок. команда Move отрицается & копия не хранит структуру в этом состоянии:Пакет перемещений со случайным именем

@echo on 
    for /D %%b in (*) do XCOPY "%%~fb" "C:\Users\*Username*\Desktop\New files" /Y /E 
    timeout /t -1 

Это то, что я получаю:

sourcefolder       destinationfolder 
     | Randomfolder1       | Randomfolder2 
     | | Randomfolder2     | \randomfile2.txt 
     | |  \randomfile2.txt    \randomfile1.txt 
     | \randomfile1.txt 
     \moverandomfolders.bat     

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

rd /s /q "*random folder name*" 
+1

Вы просто пытаетесь скопировать все в ту же структуру каталогов в новом месте? Если это так, вам не нужно перебирать каталоги с помощью 'FOR'; что-то вроде 'robocopy source destination/MIR/MOVE' должно это сделать. –

+0

Исходная папка будет исходной папкой \ Randomfolder1, а пункт назначения - папкой назначения. –

+0

Жаль, что я не был достаточно ясен. Я не хочу, чтобы файлы из исходной папки (корневой каталог моей партии) перемещались. Но я хочу, чтобы случайные папки со случайными именами в этой корневой папке перемещались в другом месте (на моем рабочем столе, например). Это 'FOR' сканирует root и ищет только папки. Опять же, проблема в том, что я не могу сказать, какое имя папки (Radomfolder1) необходимо было переместить в (папку назначения). Таким образом, у меня есть только тот экземпляр Randomfolder1, который копируется в папку назначения. Мне нужно, чтобы Randomfolder1 отображался как в папке назначения. –

ответ

0

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

 @echo on 
     for /D %%b in (*) do XCOPY "root folder" "destination folder" /Y /E /EXCLUDE:excludedfileslist.txt 
     for /D /R "root folder" %%X IN (*) DO RMDIR /S /Q "%%X" 
     timeout /t -1