Skocz do zawartości

Masowe przenoszenie plików przy użyciu komendy DOS


Rekomendowane odpowiedzi

Czy wie ktoś może czy da się przenieść pliki z wielu podfolderów używając konsoli cmd.exe? Wygląda to tak, że mam folder a w nim ok. 1600 podfolderów w podfolderach są zaś pliki i chcę je przenieść do wspólnego nowo utworzonego folderu. Tylko pliki. Metoda przeciągnij i upuść ze względu na ilość katalogów niezbyt jest w takim przypadku poręczna.

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Co za system op? Jak masz PowerShella to potestuj taką metodę. Najlepiej sprawdź na kopi.

 

1. Listing tylko plików w głównym katalogu i jego podkatalogach:

 

Get-ChildItem C:\test -r | where {!$_.PsIsContainer} | Select-Object Name

post-24-0-64203300-1362471897_thumb.png

 

 

Jeśli chcesz sortowanie po nazwach + wykaz w jakich katalogach są pliki to:

 

Get-ChildItem C:\test -r | where {!$_.PsIsContainer} | Sort-Object Name | FT Name, Directory

 

Jeśli chcesz sobie zrobić listę z ratortem:

Get-ChildItem C:\test -r | where {!$_.PsIsContainer} | Sort-Object Name | FT Name, Directory | Out-File C:\FileLog.txt

post-24-0-48315800-1362472000_thumb.png

(w tym przykładzie jest to listing z raportem przeniesienia plików do folderu kopia, polecenie Type wyświetla zawartośc pliku tekstowego)

 

Następnie przenoszenie tylko plików znajdujących się w głównym katalogu i jego wszystkich podkatalogach:

Get-ChildItem C:\test -r | where {!$_.PsIsContainer} | Move-item -force -destination C:\kopia

 

post-24-0-41566000-1362472196_thumb.png

 

Po przeniesieniu na screenie w 2 przykładzie sprawdzenie czy znajdują się jakiekolwiek pliki. Widać nie ma żadnych, brak wyników listingu. Następnie przykład 3 listing przeniesionch plików w katalogu Kopia. Możesz sobie dla porównania zrobić kolejny 2 lisiting zawartości plików w katalogu Kopia.

 

Get-ChildItem C:\kopia -r | where {!$_.PsIsContainer} | Sort-Object Name | FT Name, Directory | Out-File C:\KopiaFileLog.txt

 

Na ostatnim przykładzie widać że pozostały tylko foldery katalogu z którego zostały przeniesione pliki

 

post-24-0-21011900-1362472505_thumb.png

 

 

PowerShell:

Get-ChildItem -listing zawartości katalogów

(parametr -r rekrusywne wszukiwanie)

Where -filtr

Sort-object -sortowanie obiektu po jego "właściwościach"

ft -formatowanie (tabela) / Name - nazwa pliku / Directory - katalog

Out-file -zapis

Move-item -przenoszenie

 

CMD:

Type -wyświetlanie zawartości pliku

Odnośnik do komentarza
  • 7 miesięcy temu...

Zapomniałem o tym temacie ponieważ znalazłem wtedy odpowiedź. Ale widzę że jest nadal na 1 stronie więc nie narażając się na krytykę, że podbijam, mogę powiedzieć (może się to komuś przyda), że komenda która to zadanie wykonuje w zwykłym cmd jest taka:

for /r %d in (*) do move "%d" "d:\folder docelowy"

Należy wejść do folderu w którym są podfoldery i wykonać tą komendę.

 

Sposób podany przez KolegaDudysa też ciekawy, teraz sprawdziłem i polecenie w power shell:

Get-ChildItem C:\test -r | where {!$_.PsIsContainer} | Move-item -force -destination C:\kopia

tak samo dobrze radzi sobie z tym zadaniem, niemniej jak widać stara konsola cmd też daje radę tylko wiedza o tych bardziej złożonych poleceniach jest dość ukryta i trudno to znaleźć w internecie.

 

Odnośnik do komentarza
  • 1 rok później...

Chętnie podłączyłbym się do tematu, z tym że interesowałaby mnie sytuacja odwrotna tzn. mam mnóstwo plików w katalogu głównym i potrzebuję je upchnąć w folderach.
Foldery mają nazwę wg szablonu "yyyymmdd", czyli na przykład "20141224"
Pliki zaś  "jakasnazwa-yyyymmdd-hhmmss.jpg", na przykład "praga-20140817-205411.jpg"
Chodzi o to żeby przenieść wszystkie obrazy do folderów odpowiadających im datą.

Odnośnik do komentarza

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...