Polecenie lub skrypt do wklejenia pliku do wielu folderów i nadpisania typu pliku tego samego rodzaju przy zachowaniu nazwy oryginalnego pliku?

0

Tytułowy tytuł już to wyjaśnia, ale tutaj będę trochę bardziej szczegółowy.

Chcę zastąpić plik .jpg w wielu różnych folderach innym plikiem .jpg, ale chcę mieć możliwość zachowania nazwy oryginalnego pliku, dzięki czemu nie muszę zmieniać nazwy każdego obrazu, aby uniknąć złamania ścieżki pliku , jak bym to zrobił?

na przykład

  1. Wklej plik .jpg do 100 folderów
  2. .jpg zastępuje wszystkie inne pliki .jpg niezależnie od nazwy pliku
  3. Wklejony plik .jpg zmienia nazwę na oryginalną nazwę zastąpionego pliku

Edycja: zapomniano wspomnieć, że te foldery to wszystkie dzieci jednego rodzica, które nie są rozproszone po całym dysku.

Reality
źródło
Prawdopodobnie będziesz musiał wyjaśnić, w jaki sposób są rozmieszczone foldery, np. Czy wszystkie są dziećmi jednego folderu nadrzędnego? Czy są rozproszone po całym dysku?
Patrick Seymour
@PatrickS. Zaktualizowano, dzięki, że mi o tym powiedziałeś.
Reality
@Tog Niewiele, mogę wkleić plik do wszystkich folderów w tym samym czasie, bez problemu, ale to wszystko po tym, co pozostawia mi drapanie po głowie. Przepraszam za moją ignorancję, nie jestem zbyt kompetentny w tym temacie.
Reality

Odpowiedzi:

3

C: new.jpg: new.jpg To jest idealne rozwiązanie dla PowerShell:

ls "C:\files" -Recurse -Filter "*.jpg" | ForEach{ cp "C:\newpic.jpg" $_.FullName -WhatIf }

bardziej szczegółowa wersja to:

Get-ChildItem "C:\files" -Recurse -Filter "*.jpg" | ForEach-Object { Copy-Item "C:\newpic.jpg" -Destination $_.FullName -WhatIf }

Pierwsza część zapętla wszystkie pliki jpg w C: pliki zawierające wszystkie podkatalogi. Druga część pobiera każdy z tych plików i zastępuje go nowym plikiem.

Powyższe polecenia powiedzą ci tylko, co zrobiliby bez zrobienia tego, usuń -WhatIf, aby faktycznie wykonać operację kopiowania.

Peter Hahndorf
źródło