Jak mogę przenieść zawartość jednego drzewa katalogów do innego?

Mam katalog, który zawiera pliki i wiele poziomów podkatalogów:

C:\Source

Chciałbym przenieść zawartość C: na:

C:\Destination

Wymagania:

Wszystkie pliki i wszystkie podkatalogiw ciągu C: Dane źródłowe muszą zostać przeniesioneBędę uruchamiał polecenie w pliku wsadowymNie mogę używać Powershell ani żadnych innych języków skryptowych

Próba 0

XCOPY /E "C:\Source" "C:\Destination"

To działa doskonale, ale kopiuje zamiast ruchów. Nie mogę skopiować, a następnie usunąć źródła, ponieważ przenoszę bardzo duży zestaw plików i nie ma wystarczającej ilości miejsca na dysku, aby mieć dwie kopie naraz.

Próba 1

MOVE "C:\Source" "C:\Destination"

Przenosi to cały katalog C:w C: Miejsce docelowe, więc kończę na:

C:\Destination\Source

Próba 2

Z pewną pomocąto pytanie i zaakceptowana odpowiedź Wymyśliłem:

for /r "C:\Source" %%x in (*) do move "%%x" "C:\Destination"

Powoduje to przeniesienie plików w C: Źródło, ale nie podkatalogi lub ich zawartość. Zauważ, że użyłem %% x zamiast% x, ponieważ używam go w pliku wsadowym.

Korzystanie z FOR wydaje się obiecujące, ale nie jestem pewien, czy użyłem właściwej składni? Czy coś przegapiłem?

Próba 3

Jak sugerował Nick D, próbowałem zmienić nazwę:

RENAME Miejsce docelowe „C: Source”

W przykładowym scenariuszu dałem to dobrze. Niestety mój prawdziwyprzeznaczenie katalog jest na innym poziomie niżŹródło katalog i to nie wydaje się być obsługiwane:

C:\>REN /?
Renames a file or files.

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

Note that you cannot specify a new drive or path for your destination file.

Otrzymuję „Składnia polecenia jest niepoprawna”. błędy, jeśli spróbuję określić bardziej złożoną ścieżkę docelową, na przykład:

RENAME "C:\Source" "C:\MyOtherDirectory\Destination"
RENAME "C:\Source" "MyOtherDirectory\Destination"

questionAnswers(13)

yourAnswerToTheQuestion