Jak zaznaczyć te same foldery w obu panelach

Moderated forum for Polish users

Moderators: Usher, Gral, eltome

Post Reply
User avatar
dmocha
Junior Member
Junior Member
Posts: 59
Joined: 2013-05-05, 19:09 UTC
Location: Poland

Jak zaznaczyć te same foldery w obu panelach

Post by *dmocha »

Chciałbym zaznaczyć w lewym i prawym panelu foldery o tych samych nazwach, tylko foldery, nie interesuje mnie ich zawartość.
Potrzebuję usunąć te foldery w drugim panelu.
Jak to zrobić w najnowszej wersji TC w Windows?
Najlepiej dedykowanym poleceniem lub przyciskiem?
regards
dmocha
User avatar
eltome
Junior Member
Junior Member
Posts: 79
Joined: 2023-07-29, 15:54 UTC
Location: Warmian-Masurian Voivodeship

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *eltome »

Spróbujmy to rozwinąć jakoś.
Jeśli masz na myśli sytuacje, w której w dwóch panelach są różne katalogi i ma zostać zrobione porównanie nazw widocznych katalogów - listy, to można użyć skryptu powerShell edytowany po swojemu np.
porownanieNazwKatalogow.ps1

Code: Select all

param (
    [string]$folder1,
    [string]$folder2
)

# Sprawdzenie, czy oba parametry zostały podane
if ([string]::IsNullOrWhiteSpace($folder1) -or [string]::IsNullOrWhiteSpace($folder2)) {
    Write-Host "❌ Nie podano wymaganych parametrów: folder1 i folder2."
    Write-Host "Użycie w PowerShell np.: .\PorownajNazwyKatalogi.ps1 -folder1 'C:\FolderA' -folder2 'D:\FolderB'"
    exit
}

# Sprawdzenie, czy foldery istnieją
if (!(Test-Path $folder1)) {
    Write-Host "❌ Folder 1 nie istnieje: $folder1"
    exit
}
if (!(Test-Path $folder2)) {
    Write-Host "❌ Folder 2 nie istnieje: $folder2"
    exit
}

# Pobranie tylko nazw katalogów (bez plików)
$dirs1 = Get-ChildItem -Path $folder1 -Directory | Select-Object -ExpandProperty Name
$dirs2 = Get-ChildItem -Path $folder2 -Directory | Select-Object -ExpandProperty Name

# Znalezienie wspólnych nazw katalogów
$commonDirs = Compare-Object -ReferenceObject $dirs1 -DifferenceObject $dirs2 -IncludeEqual |
              Where-Object { $_.SideIndicator -eq "==" } |
              Select-Object -ExpandProperty InputObject

# Dodanie ukośnika na końcu każdej nazwy
$commonDirsWithSlash = $commonDirs | ForEach-Object { "$_\" }

# Zapis wyniku do pliku
$commonDirsWithSlash | Out-File -FilePath "wspolne_katalogi.txt" -Encoding UTF8

Write-Host "✅ Zapisano wspólne katalogi do pliku wspolne_katalogi.txt"
uruchamiane to poleceniem np. powerShell .\ścieżkaDoSkryptu.ps1 parametr1 parametr2
gdzie parametry to katalogi (ze ścieżką).

Skrypt zapisuje do pliku nazwy katalogów, które powtarzają się w obu folderach i można użyć w TC do Załadowania zaznaczenia z pliku ... w panelu drugim jako aktywnym. Najlepiej przetestować na dowolnie utworzonych paru folderach
#388479
User avatar
Gral
Power Member
Power Member
Posts: 1668
Joined: 2005-01-26, 15:12 UTC

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *Gral »

Jeśli dobrze rozumiem chciałbyś zaznaczyć tylko te foldery które istnieją w obydwu panelach?
Powinien działać taki przycisk z łańcuchem wewnętrznych poleceń:

Code: Select all

TOTALCMD#BAR#DATA
cm_CompareDirsWithSubdirs,cm_ExchangeSelection,cm_ClearAllFiles,cm_FocusTrg,cm_ExchangeSelection,cm_ClearAllFiles

%COMMANDER_EXE%,26



-1
Można to też trochę zmodyfikować, ale na użyteczność to raczej nie wpłynie.
User avatar
dmocha
Junior Member
Junior Member
Posts: 59
Joined: 2013-05-05, 19:09 UTC
Location: Poland

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *dmocha »

Gral, dzięki, działa jak chciałem.

Mam jeszcze inny, choć podobny temat, ale tym razem dotyczący plików a nie folderów.

Korzystam z pakietu Nirsoft oraz plików językowych.
Pliki exe znajdują się w folderach Nirsoft oraz Nirsoft\x64
Pliki językowe *_lng.ini mają początkową nazwę identyczną jak plik *.exe, różną się tylko postfixem.
Przykładowo:
appaudioconfig.exe
appaudioconfig_lng.ini

Zazwyczaj pobrane pliki językowe kopiuję do folderów: Nirsoft oraz Nirsoft\x64, problem w tym, że duża część plików *.ini jest zbędna, ponieważ nie do każdego execka jest dostępna wersja językowa.

Również niektóre pliki exe, 32 bitowe (folder Nirsoft) i 64 bitowe (folder Nirsoft\x64) są zdublowane.
Głównie korzystam z wersji 64 bitowej, chyba, że brakuje takiej wtedy używam 32 bit.

O ile zdublowane pliki exe mogę sobie znaleźć o tyle znalezienie osamotnionych plików *_lng.ini już jest kłopotem.

Jakiś pomysł / sposób na hurtową operację ich znalezienia?

Ramką zaznaczyłem osamotnione, do usunięcia, pliki językowe
Image: https://imgur.com/a/8o1NP3Y
regards
dmocha
User avatar
eltome
Junior Member
Junior Member
Posts: 79
Joined: 2023-07-29, 15:54 UTC
Location: Warmian-Masurian Voivodeship

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *eltome »

Jeżeli mają być zaznaczone określone pliki *_lng.ini , ale tylko te które nie są zdublowane
to można (podobnie jak rozwiązanie wcześniej poleceniem kombinacyjnym - wiele oddzielonych przecinkiem) np. :

Code: Select all

cm_DirMatch 1, cm_ClearAllFiles, cm_FocusTrg, cm_Rereadsource, cm_FocusTrg, em_zaznaczenie, cm_SaveSelection, cm_SrcAllFiles, cm_RestoreSelection
działania poleceń - zaczynając od panelu docelowego
  • cm_DirMatch z parametrem 1 zaznacza nowe pliki, ukrywa takie same pliki - włączana filtracja
  • cm_ClearAllFiles czyści panel z zaznaczeń
  • cm_FocusTrg to jakby przejście do innego panelu , zmiana aktywnego
  • cm_Rereadsource odświeża panel
ostatnie 3 polecenia można pominąć dla uproszczenia - bez wyłączenia filtracji automatycznie.
Poza tym nie jest tego dużo więc nie używane odczekania cm_Wait {milisekundy}
gdzie: em_zaznaczenie jest do utworzenia najpierw jako usercmd -
SELECTFILES ...

Code: Select all

SELECTFILES *_lng.ini
lub :
polecenie zdefiniowane

Code: Select all

LOADSELECTION sciezkaDoPliku-zaznaczenie.txt 
z utworzeniem pliku tekstowego , a w treści ^ :

Code: Select all

*_lng.ini
do znalezienia innych zawartości w katalogach wystarczy zmiana szukanych znaków nazw
#388479
User avatar
eltome
Junior Member
Junior Member
Posts: 79
Joined: 2023-07-29, 15:54 UTC
Location: Warmian-Masurian Voivodeship

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *eltome »

Albo w przypadku kiedy mają być zestawione nazwy, które nie mają do pary pliku *.exe - *_lng.ini
wtedy umieszczając m.in. w przycisku w linii 1 :

Code: Select all

powerShell -Command Get-ChildItem -Filter *_lng.ini | Where-Object {-not (Test-Path ($_.BaseName -replace '_lng$','.exe'))} | Select-Object -ExpandProperty Name > wynik.txt
po kliknięciu wynik zostanie zapisany w katalogu do pliku .txt - na końcu polecenia skryptowego wpis dowolny możliwy.

W przycisku 2 -
polecenie:

Code: Select all

LOADLIST
parametry:

Code: Select all

%P%N
odczyta z pliku pod kursorem (np.wynik.) jako listę z konkretnymi plikami w panelu
#388479
User avatar
dmocha
Junior Member
Junior Member
Posts: 59
Joined: 2013-05-05, 19:09 UTC
Location: Poland

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *dmocha »

eltome wrote: 2025-10-29, 17:38 UTC Jeżeli mają być zaznaczone określone pliki *_lng.ini , ale tylko te które nie są zdublowane
to można (podobnie jak rozwiązanie wcześniej poleceniem kombinacyjnym - wiele oddzielonych przecinkiem) np. :

Code: Select all

cm_DirMatch 1, cm_ClearAllFiles, cm_FocusTrg, cm_Rereadsource, cm_FocusTrg, em_zaznaczenie, cm_SaveSelection, cm_SrcAllFiles, cm_RestoreSelection
działania poleceń - zaczynając od panelu docelowego
  • cm_DirMatch z parametrem 1 zaznacza nowe pliki, ukrywa takie same pliki - włączana filtracja
  • cm_ClearAllFiles czyści panel z zaznaczeń
  • cm_FocusTrg to jakby przejście do innego panelu , zmiana aktywnego
  • cm_Rereadsource odświeża panel
ostatnie 3 polecenia można pominąć dla uproszczenia - bez wyłączenia filtracji automatycznie.
Poza tym nie jest tego dużo więc nie używane odczekania cm_Wait {milisekundy}
gdzie: em_zaznaczenie jest do utworzenia najpierw jako usercmd -
SELECTFILES ...

Code: Select all

SELECTFILES *_lng.ini
lub :
polecenie zdefiniowane

Code: Select all

LOADSELECTION sciezkaDoPliku-zaznaczenie.txt 
z utworzeniem pliku tekstowego , a w treści ^ :

Code: Select all

*_lng.ini
do znalezienia innych zawartości w katalogach wystarczy zmiana szukanych znaków nazw
Niestety nie działa jak chciałem, zaznacza w folderze wszystkie pliki *_lng.ini, również te które powinien "pozostawić" bo istnieje plik exe o tym samym prefixie
regards
dmocha
User avatar
dmocha
Junior Member
Junior Member
Posts: 59
Joined: 2013-05-05, 19:09 UTC
Location: Poland

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *dmocha »

eltome wrote: 2025-10-29, 19:20 UTC Albo w przypadku kiedy mają być zestawione nazwy, które nie mają do pary pliku *.exe - *_lng.ini
wtedy umieszczając m.in. w przycisku w linii 1 :

Code: Select all

powerShell -Command Get-ChildItem -Filter *_lng.ini | Where-Object {-not (Test-Path ($_.BaseName -replace '_lng$','.exe'))} | Select-Object -ExpandProperty Name > wynik.txt
po kliknięciu wynik zostanie zapisany w katalogu do pliku .txt - na końcu polecenia skryptowego wpis dowolny możliwy.

W przycisku 2 -
polecenie:

Code: Select all

LOADLIST
parametry:

Code: Select all

%P%N
odczyta z pliku pod kursorem (np.wynik.) jako listę z konkretnymi plikami w panelu
Polecenie powershell działa, przycisk LOADLIST również, a czy da się zrobić w USERCMD polecenie, które załaduje plik wynik.txt i od razu zaznaczy pliki, wypisane wewnątrz wynik.txt?
Chciałbym od razu (nie na raty) jednym przyciskiem zaznaczyć w folderze wszytkie "osierocone" pliki *lng.ini, czyli w USERCMD zapisać jako em_ Twoje polecenie Powershell, potem dać np cm_wait 2000 i po przecinku zaznaczenie z załadowanego pliku jako inny em_
regards
dmocha
User avatar
eltome
Junior Member
Junior Member
Posts: 79
Joined: 2023-07-29, 15:54 UTC
Location: Warmian-Masurian Voivodeship

Re: Jak zaznaczyć te same foldery w obu panelach

Post by *eltome »

To chyba da się zrobić, by zostało wykonane za jednym razem :
  1. jako tzw. usercmd - np. em_ps , a w tym polecenie PowerShell (znajdujące konkretne pliki i zapisujące wynik do pliku)
  2. cm_wait 3000 ( tzn.3000/1000=3 sekundy lub opcjonalnie można tu wypróbować inne wartości np.3500 ~ 3,5 sek.)
  3. polecenie z kategorii usercmd.ini - np. em_z i w tym zaznaczenie z pliku utworzonego ( LOADSELECTION z parametrem odpowiedniego pliku)
#388479
Post Reply