2011-01-15 14 views
7

Mam folder z wieloma podkatalogami z jednym lub większą liczbą plików w każdym. Próbuję napisać plik wsadowy, który przenosi wszystkie te pliki do C: \ songs (na przykład). Jakaś pomoc? Próbowałem jużPolecenie DOS, aby przenieść wszystkie pliki w podkatalogach o jeden poziom wyżej.

C:\>FOR /R C:\Test %i IN (*) DO MOVE %i C:\Songs 

foldery testowy i piosenek istnieje, ale pojawia się błąd mówiący

%i was unexpected at this time. 

Co robię źle?

Odpowiedz

5
FOR /R %i IN (C:\Test\*) DO MOVE "%i" C:\Songs 

W pliku wsadowym musi to być %% i. Dziwne dziwactwo partii.

+0

Czy to uruchomiłeś? Dla mnie po prostu zawiesza konsolę. Dziwne. –

+0

Jeśli masywny folder zajmie dużo czasu, wszystko będzie rekurencyjnie parsowane. Tak, testowałem to na Win7, a teraz na XP. Oryginalne MS-DOS wymagałoby jednak \ *. \ *. – SilverbackNet

+0

Działa. Dzięki :) – Rishi

5

(przenieść pliki w podkatalogach up 1)

for /r %x in (*.*) do move "%x" "%x"/../.. 

(ostatnia część Zwykle używam wstecz skosów ale to szalona rzecz przechowywane usuwając je z jakiegoś powodu. To będzie pracować w obu kierunkach chociaż)

(usunąć niepotrzebne katalogi)

for /d /r %x in (bin) do rd "%x" 

znaczy, jeśli miał kilka katalogów z plikami w katalogach „bin” w ramach tych i chciałeś aby przesunąć wszystko do góry 1 i usunąć katalogi "bin".

+0

Jak zmienić pierwsze polecenie, aby użyć wybranego folderu zamiast '(* . *) '? (To jest do użycia w pliku wsadowym, który następnie użyję z niestandardowym poleceniem menu kontekstowego.) – u01jmg3

Powiązane problemy