Bir .bat dosyası içinde dizinleri yinelemeli olarak kopyalamanın bir yolu var mı? Öyleyse, bir örnek harika olur. Teşekkürler.
Bir .bat dosyası içinde dizinleri yinelemeli olarak kopyalamanın bir yolu var mı? Öyleyse, bir örnek harika olur. Teşekkürler.
Yanıtlar:
Dosyaları ve alt dizinleri yinelemeli olarak kopyalayacak xcopy'e bakın .
Sayfanın 2 / 3'ü kadar örnekler var. Özel kullanım şudur:
Tüm dosyaları ve alt dizinleri (boş alt dizinler dahil) A sürücüsünden B sürücüsüne kopyalamak için şunu yazın:
xcopy a: b: /s /e
Copy-Item -Recurse
PowerShell'de de yapabilirsiniz.
Kabul edilen cevabın yorumlarını okuduktan sonra, benim için çalışan robocopy komutunu denedim (Windows 7 64 bit SP 1'den standart komut istemini kullanarak):
robocopy source_dir dest_dir /s /e
/E
ima /S
? copy subdirectories, including Empty ones.
/S
ve /E
robocopy /?
yardımına göre zıt şeyleri ima ediyor gibi görünüyor - s "boş olanlar değil" e "boş olanlar" dır. Bence sadece birini seçmelisin.
robocopy
Bir veya daha fazla dosya başarıyla kopyalandığında 1 çıkış kodunu döndürdüğünü unutmayın .
Batch'te, her iç içe geçmiş alt dizinde ne yaptığınızı tam olarak kontrol etmenizi sağlayan yinelemeli bir algoritma yazabilirsiniz:
@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
Dosyaları İşlemek için Dizinler Üzerinden Windows Toplu Dosya Döngüsü mü?