Czy istnieje sposób na rekurencyjne kopiowanie katalogów w pliku .bat? Jeśli tak, przykład byłby świetny. dzięki.
Czy istnieje sposób na rekurencyjne kopiowanie katalogów w pliku .bat? Jeśli tak, przykład byłby świetny. dzięki.
Odpowiedzi:
Zajrzyj do xcopy , który będzie rekurencyjnie kopiować pliki i podkatalogi.
2/3 na dole strony zawiera przykłady. Szczególne zastosowanie ma:
Aby skopiować wszystkie pliki i podkatalogi (w tym wszelkie puste podkatalogi) z dysku A na dysk B, wpisz:
xcopy a: b: /s /e
Copy-Item -Recurse
w PowerShell.
Po przeczytaniu komentarzy zaakceptowanej odpowiedzi wypróbowałem polecenie robocopy , które działało dla mnie (używając standardowego wiersza poleceń z Windows 7 64 bity SP 1):
robocopy source_dir dest_dir /s /e
/E
oznacza /S
? copy subdirectories, including Empty ones.
/S
i /E
wydaje się sugerować przeciwne rzeczy według /?
pomocy robocopy - s to „nie puste” e to „puste”. Myślę, że powinieneś po prostu wybrać jedną.
robocopy
zwraca kod zakończenia 1, jeśli jeden lub więcej plików zostało pomyślnie skopiowanych.
Możesz napisać algorytm rekurencyjny w usłudze Batch, który zapewnia dokładną kontrolę nad tym, co robisz w każdym zagnieżdżonym podkatalogu:
@echo off
call :treeProcess
goto :eof
:treeProcess
rem Do whatever you want here over the files of this subdir, for example:
copy *.* C:\dest\dir
for /D %%d in (*) do (
cd %%d
call :treeProcess
cd ..
)
exit /b
Plik wsadowy systemu Windows zapętla się przez katalogi w celu przetwarzania plików?