Jak przekazać% CD% do aplikacji za pomocą GuiMacro Shell w ConEmu

0

Dokumentację Shell nie jest bardzo jasne, być może jestem coraz mylić.

  1. Jak mogę przekazać% CD% jako argument komendy, którą uruchomiłem?
  2. Co to jest pierwszy argument? Co oznacza „otwórz”, „drukuj„ tak ”? Co to jest „”, „” w drugim przykładzie oznacza.

W szczególności interesuje mnie uruchamianie takiego polecenia:

Shell("open","explorer","%CD%")

Ale to nie do końca działa. explorerotwiera się, ale nie z CD. Ostatni przykład dokumentacji działa:

Shell("new_console:Ibn","cmd","/k start explorer \"%CD%\" && exit")

To jest zagadkowe. Dlaczego to działa, a nie drugie?

Używam kompilacji 161022 (najnowszej na piśmie).

Dzięki,

chytry
źródło

Odpowiedzi:

1

ShellMakro ma wiele wspólnego z funkcji ShellExecute WinAPI . Tak open, printa inne ma takie samo znaczenie jak lpOperationargument funkcji.

Alternatywnie, pierwszy agrack powłoki akceptuje wewnętrzne przełączniki new_console ConEmu , bez początkowego myślnika.

Następnie ConEmu nie rozszerza nazw zmiennych na ich wartości podczas wykonywania Shellfunkcji. Możesz to łatwo sprawdzić za pomocą Process Explorer , wykonując cmdzamiast explorer. Przykład:

Shell("open","cmd","%CD%")

Po uruchomieniu Shell("open",...)ConEmu nie dziedziczy środowiska. Ale kiedy określisz new_console:Izamiast open, to zrobi. Tak więc w przykładzie z witryny CDjest poprawnie „dziedziczona”.

W końcu nie cytowałeś %CD%poprawnie w swoim pierwszym przykładzie. To właściwie nie ma znaczenia (nie zadziałałoby), ale poprawny zapis byłby taki ..., "\"%CD%\"")sam, jak w przykładzie z witryny.

Maximus
źródło
To bardzo odkrywcze, dzięki. Jak więc przekazać płytę CD do aplikacji bez tworzenia nowej karty i nowej konsoli? (Nawet jeśli jest w tle, rodzaj pośredni i powolny)
prostu
hej maximus, czy istnieje aktywne forum ConEmu?
chytrze