Skocz do zawartości
kruger

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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Same pliki ze wszystkich katalogów i podkatalogów bez zachowania struktury katalogów, czyli tak, żeby wszystko było w jednym?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Do dam od siebie że w programie total commander 8.01 jest taka opcja jak " widok gałęzi (z podkatalogami)"

szybciej i prościej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

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.

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

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ą.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

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ę...