Daha sonra tekrar B1, B2, B3, ... C1, C2, C3 ...
Cmd'yi kullanarak tüm alt klasörlerden tüm dosyaları "kök" A klasörüne nasıl taşıyabilirim?
Daha sonra tekrar B1, B2, B3, ... C1, C2, C3 ...
Cmd'yi kullanarak tüm alt klasörlerden tüm dosyaları "kök" A klasörüne nasıl taşıyabilirim?
Yanıtlar:
Orijinal yazım, dosyanın uzantısını taşıma komutuna dahil etmeyi ihmal etti.
%~ni
sadece taban adını döndürür,%~nxi
hem dosya adını hem de uzantıyı almak için kullanmanız gerekir ! Umarım dosya adlarını hesabımda yönetmedin! (
Bir Komut İsteminden:
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
Daha sonra boş klasörleri temizlemeniz gerekiyorsa:
for /d %i in (*) do @rd /s /q "%i"
Şimdi, herhangi bir dosya adı çakışması varsa, tek başınasınız. Ekleyebilir /y
parametresini move
(önce komuta "%i"
kuvvet üzerine yazma için). Farklı bir şey istiyorsanız, sizin için her şeyi otomatik olarak yeniden adlandırabilecek başka bir programa ihtiyacınız olacak.
Eğer bir toplu iş dosyasında bu kullanmak istiyorsanız Ayrıca, tüm değiştirmek %
için %%
.
FOR /r
- güzel!
Bir klasör oluşturun ve içine diğer tüm klasörleri kopyalamak, daha sonra sağ o klasörü tıklayın ve Ara . Arama kutusuna girin *.*
.
Bu, tüm dosya ve klasörleri listeleyecektir. Kök dizininizde istediğiniz tüm dosyaları seçin ve kesin. Kök dizininize gidin ve tüm dosyaları buraya yapıştırın.
Cygwin'i (veya Windows için başka bir Unix ortamını) kurun ve aşağıdakileri çalıştırın:
cd A
find . -type f -exec mv {} . \;
mv
ve find
varyantlarınıza bağlı olarak find . -type f -exec mv -t . {} \;
bunun yerine kullanmanız gerekebilir .
mkdir -p a/a1 a/a2 a/a3 b/b1 b/b2 b/b3 c
ve touch a/a1/foo a/a1/bar a/a2/baz a/a3/qux b/b1/quux b/b2/quuux b/b3/quuuux c/ccc
hazırlık için.
find . -type f -exec mv {} . ;
Ve işe yaramış gibiydi.