logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

- Usuwanie plików z folderu w oparciu o plik "lista.txt"

hell666 23 Mar 2017 04:03 4332 20
REKLAMA
  • #1 16365089
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Szukam jakiegoś polecenia lub programu, które usuwało by pliki z folderu w oparciu o przygotowaną wcześniej listę.

    Np. Mam w folderze pliki jpg, png itp. a chcę usunąć tylko te których nazwy zapisane są w pliku .txt

    Szukałem ale jakoś nic nie znalazłem :(
  • REKLAMA
  • #2 16365186
    Gelip
    Poziom 36  
    Posty: 5236
    Pomógł: 324
    Ocena: 611
    Jaki system? Jak tworzysz plik lista.txt? W Windows, zamiast tworzyć plik lista.txt skorzystaj z wyszukiwarki systemowej aby wyszukała odpowiednie pliki w katalogu, np. chcesz usunąć wszystkie pliki .png które mają w nazwie słowo moje: wpisujesz *moje*.png i wyszukujesz we wskazanym folderze. Następnie wciskasz Ctrl+A aby zaznaczyć wszystkie znalezione i klawisz Delete aby usunąć.
  • Pomocny post
    #3 16365209
    cbrman
    Poziom 27  
    Posty: 441
    Pomógł: 177
    Ocena: 61
    Skrypt VBS dla Windows:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    W pliku Lista_Usun.txt są podane pełne ścieżki dostępu do poszczególnych plików, jedna linia jeden plik.
  • REKLAMA
  • #4 16365610
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    System to win 7

    cbrman a jak to zrobić nie podając pełnej ścieżki, by to polecenie przeszukiwało konkretny katalog i usuwało pliki, których nazwy znajdują się w pliku "lista.txt ?

    Pliki, które chce usuwać kiedyś miałem a teraz chcę sprawdzić dany katalog czy nie występują pliki o tych samych nazwach znów i jeśli tak to je usunąć.
  • Pomocny post
    #5 16365642
    Gelip
    Poziom 36  
    Posty: 5236
    Pomógł: 324
    Ocena: 611
    Skrypt cbrman'a działa tylko trzeba go trochę poprawić:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    Zapisz skrypt np. jako delete.vbs i wrzuć razem z plikiem lista.txt do folderu gdzie chcesz usuwać pliki. W pliku lista.txt nie musi być pełnej ścieżki, wystarczy sama nazwa pliku z rozszerzeniem, każda w oddzielnej linii a nie po spacji czy przecinku.
    UWAGA! Skrypt działa tylko do momentu gdy w folderze jest plik znajdujący się na liście w pliku lista.txt, w przeciwnym wypadku zatrzyma się z komunikatem błędu.
  • Pomocny post
    #6 16366008
    dt1
    Admin grupy komputery
    Posty: 48181
    Pomógł: 7304
    Ocena: 8264
    Można też za pomocą powershell (w Windows 7 jest zdaje się domyślnie zainstalowana wersja 2.0):

    Kod: Dos
    Zaloguj się, aby zobaczyć kod


    W miejscu lista.txt należy wpisać plik zawierający listę plików do usunięcia (pliki na tej liście albo muszą zawierać pełną ścieżkę, albo jeśli są to same nazwy bez ścieżki należy komendę wykonywać będąc w katalogu z tymi plikami).

    Domyślna polityka Powershell zabrania wykonywania skryptów, więc za pierwszym razem wypada odblokować niepodpisane skrypty komendą:

    Kod: Dos
    Zaloguj się, aby zobaczyć kod


    Aby przywrócić blokadę i uniemożliwić wykonywanie skryptów można wydać komendę:
    Kod: Dos
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #7 16366398
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Można też ze starego poczciwego bat-a
    Kod: Dos
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #8 16367349
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Bardzo Dziękuję Gelip, cbrman, dt1 i clubs :)

    przetestuję wszystkie wasze propozycje :)

    temat pozostawiam otwarty bo zawsze można coś dodać ciekawego :)

    edit1

    co do ostatniej propozycji

    for /f %%i in (lista.txt) do del %%i


    to ono nie działa; wywala błąd: W tym momencie %%i było nieoczekiwane.

    edit 1.1

    Przepraszam jednak działa tylko musi być uruchamiane z pliku bat
  • Pomocny post
    #9 16367387
    dt1
    Admin grupy komputery
    Posty: 48181
    Pomógł: 7304
    Ocena: 8264
    Tak, jeśli uruchamiasz pętlę z wiersza poleceń to zastosuj pojedynczy symbol %, podwójny jest w plikach bat.
  • #10 16392937
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Dzięki dt1 :)

    Mam kolejne pytanie.

    Czy jest możliwość usuwania plików z folderu na podstawie sum kontrolnych: md5 lub sha ?

    Np. w TotalCommanderze tworzę plik .sha w którym są nazwy plików z ich sumami kontrolnymi lub programem "MD5 Checksum Tool" generuję plik "usun.log" w którym są nazwy plików i ich sumy kontrolne.

    Czy jest możliwość by jakieś polecenie, skrypt lub program przeszukał zadany folder i usunął tylko pliki znajdujące się w pliku "usun.sha lub "usun.log" opierając się na sumach kontrolnych plików.

    A może coś innego co dało by radę ?
  • #11 16393536
    dt1
    Admin grupy komputery
    Posty: 48181
    Pomógł: 7304
    Ocena: 8264
    W powershell jest duża szansa, że też się da to zrobić, ale akurat z PS jestem cienki :) Ja bym do takiego zadania wykorzystał narzędzia linuxowe (które da się również pod Windows uruchomić).
  • #12 16394258
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    hell666 napisał:
    Czy jest możliwość by jakieś polecenie, skrypt lub program przeszukał zadany folder i usunął tylko pliki znajdujące się w pliku "usun.sha lub "usun.log" opierając się na sumach kontrolnych plików.


    Witam
    Załącz taki plik , a te sumy ma porównywać czy jak?
  • REKLAMA
  • #13 16394906
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    dt1 napisał:
    W powershell jest duża szansa, że też się da to zrobić, ale akurat z PS jestem cienki :) Ja bym do takiego zadania wykorzystał narzędzia linuxowe (które da się również pod Windows uruchomić).


    Możesz podać jakieś konkretne propozycje ?

    clubs napisał:
    Witam
    Załącz taki plik , a te sumy ma porównywać czy jak?


    Chciałbym na podstawie pliku w którym jest lista plików z ich sumami kontrolnymi usuwane były pliki z określonego folderu. Z przeszukiwanego folderu też mógłbym stworzyć plik .log lub .sha. I teraz przydało by się narzędzie, które porównywało by obie listy (lub coś w tym stylu)

    Np. folder_z_plikami_do_przegladu.log i folder_z_plikami_do_kasacji.log (lub .sha)

    I jeśli by znalazło odpowiednie pliki to je skasowało z dysku. Mam nadzieję że nie zamotałem zbytnio sprawy :)
    Załączniki:
    • plik_wyg_tc.rar (892 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
    • Folder_Hash_Report.rar (1.38 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #14 16402243
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Witam
    Pisałem pw
    - win7
    -format sha
    -wskaż plik tzw. baza.sha
    -wskaż plik tzw. usuń.sha (plik ten musi być w katalogu w którym mają być usuwane pliki)
  • #15 16402314
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Przepraszam ale nie zauważyłem wiadomości PW zaraz sprawdzę działanie twojego pliku.

    Edit.

    Sprawdziłem i niestety plik "c.del.exe" nie działa. Wskazałem plik baza.sha i usun.sha
    ale program nie usunął plików, które były w pliku usun.sha
  • #16 16402399
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Zobacz teraz
  • #17 16402413
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Teraz działa :)
    Ale czy była by możliwość by przy każdym usuwanym pliku nie potwierdzać usuwania ?
    I czy można to samo zastosować dla bazy *.sha512 ?

    Edit.
    Czy jest możliwe by program pracował bez pliku baza.sha tzn sprawdzał sumy kontrolne wszystkich plików w folderze i na podstawie pliku usun.sha usuwał zbędne pliki ?
  • #18 16402459
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Bez potwierdzania
  • #19 16402465
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Wielkie Dzięki - Śmiga - Sorki że tak Ciebie męczę gdy słonko za oknem - :)

    Edit.

    Jedno co zauważyłem to chyba program nie usuwa po samej sumie kontrolnej bo jeśli w jednym z plików zmieniłem nazwę na inną to tego pliku nie usunął. Mógłbyś dokładnie wyjaśnić działanie Twojego programu ?
  • Pomocny post
    #20 16402994
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    A teraz zobacz
    Załączniki:
    • c.del.rar (32.96 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #21 16405413
    hell666
    Poziom 12  
    Posty: 99
    Pomógł: 3
    Ocena: 14
    Sorki że dopiero teraz piszę.

    Co zmieniłeś w ostatniej wersji ? Widzę że podając zamiast plików .sha pliki .sha512 to działa bezproblemowo czyli usuwa pliki.

Podsumowanie tematu

✨ Użytkownik poszukiwał sposobu na usunięcie plików z folderu na podstawie listy zapisanej w pliku "lista.txt". Otrzymał różne propozycje rozwiązań, w tym skrypty VBS, PowerShell oraz pliki wsadowe (bat). Skrypt VBS umożliwia usunięcie plików, pod warunkiem, że w "lista.txt" znajdują się pełne ścieżki lub same nazwy plików. PowerShell oferuje komendę do usuwania plików na podstawie listy, a plik wsadowy wykorzystuje pętlę do usunięcia plików z listy. Użytkownik zadał również pytanie o możliwość usuwania plików na podstawie sum kontrolnych (MD5, SHA), co również spotkało się z zainteresowaniem i propozycjami rozwiązań.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA