tek dosyada xcopy dosyaları


20

.Png uzantılı tüm dosyaları tek bir dizine çıkarmak için Windows makinesinde xcopy kullanmak istiyorum.

Denedim xcopy C:\folder\*.png /s C:\png\ama alt dizinleri \ klasöründe tutuyor, (örneğin C: \ png'da, istemediğim C: \ png \ a \ b \ c \ img.png). Sadece C: \ png içindeki dizin yapısını koruyarak C: \ png içindeki tüm .png öğelerini istiyorum.


Yanıtlar:


37

Bu iyi eski ile yapılabilir for:

for /r C:\Folder %f in (*.png) do @copy "%f" C:\png

Hiçbir şey fantezi.


İşe yarıyor! Ne olduğunu açıklamak ister %fmisin?
bobobobo

Bu döngü değişkenidir.
Joey,

3
Bu benim için işe yaramadı, etkisine bir şey aldım f" was unexpected at this time. Değişen %fiçin %%fçalıştı. Ancak, bunu bir toplu iş dosyasında çalıştırıyordum: Bir toplu iş programı yerine komut satırında FOR komutunu kullanıyorsanız, yalnızca yüzde bir işaretini kullanın: %% G yerine% G. ss64.com/nt/for.html
ta.speot.is

1
Uhm, evet. Bu bekleniyor ve aynen sizin belirttiğiniz gibi. Kafanın karışması nereden gelirdi?
Joey

1
@kayleeFrye_onDeck: Bildiğim kadarıyla özel bir değişken yok. Aklıma gelen tek şey, aşina olmayan insanların gibi şeylerde foriki farklı hakkında kafalarının karışabileceğidir . Dokümantasyon karışıklığı önlemek için değişkenler için büyük harf kullanmak için önerir, ancak değiştirmelerin hala değişken adı kolayca ayırt edilebilir, sanırım. d%~ddfor
Joey

0

Eğer cygwin kurulu ise, bu bulmak için bir iş olacaktır:

cp `find /cygdrive/c/folder/* -name '*png'` /cygdrive/c/png/

(dosya adlarından herhangi birinin içinde boşluklar varsa bu sorun çıkaracaktır - findyine de her koşulda çalışacak bir komutun bir türevini bulacaksınız )

Vista, 2003 veya 2008 kullanıyorsanız, daha az esnek fakat yine de yararlı "forfiles" arkadaşınızdır. Gibi bir şey:

FORFILES /P c:\folder\ /M *.png /S /C "cmd /c copy @file c:\png\"

Not: Yukarıdaki komutların hiçbirini test etmedim, ancak teoride çalışması gerekir ...


+1, FORFILES komutunun çalıştığını doğruladı. İki kez koştum ve 2. kez w / out istemini kopyaladım, bu yüzden kopyaları bulursa sadece üzerine yazdığını varsayıyorum.
hiperslug
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.