[#1] Masowe usunięcie ikonek
Cześć. Mam katalog, który zawiera kilkadziesiąt podkatalogów a do nich ikonki *.info. Część z tych katalogów już nie istnieje a pliki *.info odwołujące się do nich, tak. Wygląda to tak, że gdy otwieram katalog, to w oknie mam ikony nieistniejących podkatalogów. Oczywiście powoduje to chaos, bo nie da się nich otworzyć (bo ikony są, ale katalogi już nie). Czy jest jakiś prosty sposób aby masowo usunąć te pliki *.info, które sie odwołują do nieistniejących katalogów? Rozwiązanie musi być "masowe", bo takich katalogów mam kilkadziesiąt i ręczne przeszukiwanie plików *.icon za długo by trwało.
[#2] Re: Masowe usunięcie ikonek

@davidtychy, post #1

W cli wpisz.
Delete nazwa_katalogu/#?.info
I aby kasował głebiej
Delete #?/#?/#?.info
Powinieneś móc zamiennie użyć * zamiast #?
[#3] Re: Masowe usunięcie ikonek

@Risc, post #2

+ powinieneś użyć pętli, która sprawdza czy czy dla ikonki istnieje dany katalog.
[#4] Re: Masowe usunięcie ikonek

@_arti, post #3

Takie zadanie wykona skrypt AmigaDOS, który skasuje plik .INFO jeżeli nie ma pliku z bazową nazwą:

Nazwijmy go np. DELICON

.KEY filename/A
IF NOT EXISTS <filename>
    DELETE <filename>.info
ENDIF

Teraz wystarczy wyprodukować wywołanie dla plików bazowych za pomocą LIST LFORMAT.

LIST PAT="#?.info" LFORMAT="EXECUTE DELICON %P%M" ALL >DELICONS.SCRIPT

Uwaga: w AmigaDOS istnieje jeden plik o nazwie ".INFO", który nie posiada odpowiednika - przechowuje informacje o szufladzie, w której się znajduje.

Teraz sprawdzamy utworzony plik DELICONS.SCRIPT i wywołujemy go za pomocą EXECUTE.

Jak zawsze zalecam ostrożność przy kasowaniu wielu plików rekursywnie.

Ostatnia aktualizacja: 05.02.2023 10:00:12 przez Hexmage960
2
[#5] Re: Masowe usunięcie ikonek

@davidtychy, post #1

przy okazji sprawdziłem, co na to poradzi chatbot. Trochę mu się miesza, jak widać.

[#6] Re: Masowe usunięcie ikonek

@snajper, post #5

Ale ogólnie podejście ma sensowne
[#7] Re: Masowe usunięcie ikonek

@Hexmage960, post #4

Jak zawsze zalecam ostrożność przy kasowaniu wielu plików rekursywnie.

Jeżeli to jest w jakiś sposób niebezpieczne i łatwo o pomyłkę, to może łatwiej usunąć wszystkie pliki *.info z danego katalogu i utworzyć je na nowo - tylko do istniejących katalogów. Wygląd ikon dla mnie nie ma znaczenia. Mogą być standardowe szuflady. Wtedy pytanie, jak utworzyć masowo ikonki do istniejących katalogów?
[#8] Re: Masowe usunięcie ikonek

@davidtychy, post #7

Wtedy pytanie, jak utworzyć masowo ikonki do istniejących katalogów?

Jeżeli chcesz stworzyć ikonki dla istniejących katalogów, najlepiej według mnie użyć do tego menadżera plików, jak Dir Work lub Directory Opus.

Zaznaczasz wybrane katalogi i klikasz "Add Icon".

Jeżeli to jest w jakiś sposób niebezpieczne i łatwo o pomyłkę, to może łatwiej usunąć wszystkie pliki *.info z danego katalogu i utworzyć je na nowo - tylko do istniejących katalogów.

Według mnie najlepiej byłoby napisać program, który to robi. Wymaga to jednak znajomości języka programowania jak C.

Taki program mógłby skorzystać z biblioteki icon.library i sprawdziłby czy dana ikona jest typu "Szuflada" (Drawer) oraz czy istnieje powiązany katalog.

Skrypt AmigaDOS, który pokazałem nie jest bardzo niebezpieczny, bo skasuje tylko pliki .INFO, ale może skasować też ikonki, których skasować nie chcemy.
[#9] Re: Masowe usunięcie ikonek

@davidtychy, post #7

Pod OS 3.2 wystarczyłoby usunąć wszystkie pliki .info i wybrać OKNO=>utrwal pozycję wszystkiego. Ikony wtedy powstaną na podstawie DEFTYPE systemowego.
1
[#10] Re: Masowe usunięcie ikonek

@Hexmage960, post #4

Uwaga: w AmigaDOS istnieje jeden plik o nazwie ".INFO", który nie posiada odpowiednika - przechowuje informacje o szufladzie, w której się znajduje.


A to już nieaktualne, bo dotyczy kick1.3 i Workbencha 1.3.3.
Nie ma się co tym plikiem przejmować.
[#11] Re: Masowe usunięcie ikonek

@Norbert, post #10

W nowszych, to jest chyba .backdrop.
[#12] Re: Masowe usunięcie ikonek

@_arti, post #11

.backdrop to co innego.
W tym pliku zawarte są ścieżki dostępu do ikon które zostały "wrzucone" na ekran Workbencha za pomocą LEAVE OUT z górnego menu ICONS
1
[#13] Re: Masowe usunięcie ikonek

@Norbert, post #10

A to już nieaktualne, bo dotyczy kick1.3 i Workbencha 1.3.3.
Nie ma się co tym plikiem przejmować.

Faktycznie. Przez lata przyzwyczaiłem się do dyskietek Freda Fisha na składance CDPD, gdzie te pliki .info były obecne. Nawet nie spostrzegłem, że w późniejszych wersjach systemu 2.0+ tych plików nie ma.

Czasami dystrybuowane są też ikonki bez plików (nawet ikonki szuflad) i to jest celowe. Również ikona dyskietki lub napędu posiada plik Disk.info.

Zdarza się też rzadko, że są ikonki, które wykonują jakiś inny program w DefaultTool i posiadają parametry w ToolTypes. Wtedy taka ikona nie ma odpowiednika w postaci pliku. Przykładem jest systemowy AmigaShell.

Wykonanie tamtego mojego skryptu skasuje takie ikonki.

Dlatego należy zachować pewną ostrożność.
[#14] Re: Masowe usunięcie ikonek

@Hexmage960, post #13

Wykonanie tamtego mojego skryptu skasuje takie ikonki.

To trzeba napisać tak skrypt aby kasował tylko ikony katalogów których już nie ma.
W sumie to tylko dodanie DIRS w odpowiednim miejscu
[#15] Re: Masowe usunięcie ikonek

@Norbert, post #14

Według mnie wystarczy napisać programik-pchełkę AmigaDOS, która zwróci wartość 5 (RETURN_WARN) gdy ikonka jest typu Drawer (szuflada) oraz 0 (RETURN_OK) w przeciwnym przypadku.

Nazwijmy ten program IsDrawer. Składnia: IsDrawer FILE/A.

Następnie skrypt DELICON zmodyfikować by sprawdzał wynik za pomocą konstrukcji IF WARN:

Przy okazji dodałem sprawdzanie czy ikona istnieje (choć przy wywołaniu LIST PAT="#?.info" jesteśmy tego pewni).

.KEY filename/A
IF NOT EXISTS <filename>
    IF EXISTS <filename>.info
        ISDRAWER <filename>
        IF WARN
            DELETE <filename>.info
        ENDIF
    ENDIF
ENDIF

Powyższy skrypt pobiera nazwę katalogu. Jeżeli katalog nie istnieje, ale istnieje ikona typu Szuflada powiązana z tą nazwą, skasuje tą ikonkę.

Program IsDrawer jest krótki i łatwy do napisania w języku C.

Dodam, że powyższy przykład jest skuteczny, choć najlepiej jest usuwać ikonki za pomocą icon.library. Wtedy jak skasujemy ikonę zniknie ona automatycznie również z okna z szufladą, w której się znajduje.

Ostatnia aktualizacja: 05.02.2023 23:12:12 przez Hexmage960
1
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem