Dlaczego „Otwórz konsolę tutaj” nie otwiera cmd na właściwym dysku, jeśli nie jest używany na C-Drive?

6

Kiedy [ Shift+ kliknięcie prawym przyciskiem myszy] folder, który nie znajduje się na moim Cdysku i wybiorę „Otwórz konsolę tutaj”, pojawia się cmdokno, które nie jest otwarte we właściwej lokalizacji, ale wskazuje na C:\Windows\system32. Muszę ręcznie przełączyć na właściwy dysk, ale kiedy to zrobię, znajduje się w odpowiednim folderze. To nie koniec świata, ale to mała irytacja, która naprawdę zaczyna mi działać na nerwy ...

Uwaga: Działa poprawnie w przypadku lokalizacji na Cdysku.

Czy jest to oczekiwane zachowanie, gdy jest używane poza C?

Jeśli nie, jak to naprawić?
Jeśli tak, to jak mogę go zmienić, aby bezpośrednio ładował foldery innych dysków?


Na przykład, jeśli spróbuję otworzyć okno konsoli wskazujące folder na pulpicie, na przykład:

Wybieranie „Otwórz konsolę tutaj” z menu Shift + prawy przycisk myszy dla folderu na pulpicie

Pojawia się cmdokno wskazujące, C:\Windows\system32że muszę ręcznie przełączyć się na D:, ale po wykonaniu tej czynności możesz zobaczyć, że folder w folderze D:został pomyślnie wybrany:

Okno CMD, które początkowo pokazuje folder C: \ win \ sys32, ale pojedyncze polecenie „D:” zmienia się na poprawną lokalizację.


Aktualizacja

Wygląda na to, że „Otwórz tutaj konsolę” może być niestandardowa (patrz komentarze).

Dla kompletności okazuje się, że po kliknięciu w folderze widzę prawdopodobnie standardowe „Otwórz okno poleceń tutaj” niżej na liście (jest to „przestrzeń plików”, a nie sama ikona folderu), jak na obrazku poniżej, więc jest pewna różnica między tymi dwoma, które się pojawiły:

menu shift + RMB po otwarciu bezpośrednio z pulpitu (bez podświetlenia)

DMA57361
źródło
Nie mogę tego odtworzyć na Win 7 Pro 64-bit. Menu brzmi „Otwórz tutaj okno poleceń” i tak jest. Próbowałem zarówno zmapowanego dysku sieciowego, jak i rzeczywistego dysku fizycznego.
RBerteig
Nie mogę również powielić tego na Win 7 Ultimate 64-bit SP1. Podobnie jak @Rberteig, działa dobrze dla mnie. Prawie zastanawiam się, czy masz rozszerzenie powłoki, czy coś sprzecznego?
Shinrai
Hmmm, jestem teraz w pracy, ale jeśli zmienię-rmb w folderze (tj. Nie na samej ikonie folderu, ale w jego „przestrzeni plików”) lub bezpośrednio na pulpicie, jest osobne „Otwórz okno poleceń tutaj „opcja dostępna znacznie poniżej listy (której wcześniej nie zauważyłam ...) i to działa. @Shinrai - czy masz taką samą opcję jak ja w tym samym miejscu? Jeśli nie, myślę też, że jakieś rozszerzenie jest grą. (Przypuśćmy, że powinienem dodać, że to także Win 7 Pro x64. )
DMA57361
@Rberteig - proszę zobaczyć mój poprzedni komentarz (podzielony jako 1 @ odpowiedź na komentarz). W szczególności - czy masz tę samą opcję co ja w tym samym miejscu? Jeśli nie, myślę też, że jakieś rozszerzenie jest grą.
DMA57361
@ DMA57361, sprawdzę dwukrotnie w biurze, ale nie sądzę, żebym to zrobił. Nie mam zainstalowanych zbyt wielu (lub żadnych) rozszerzeń, więc brzmi to jak wiarygodne źródło różnicy.
RBerteig

Odpowiedzi:

5

Po sprawdzeniu rejestru i zapytaniu ludzi na czacie ustaliłem, że parametry przekazywane do instancji, cmdktóra została tu wywołana, są niepoprawne.

Polecenie można znaleźć w, [HKEY_CLASSES_ROOT\Directory\shell\cmd\command]a miałem (Default)wartość:

cmd.exe /k cd \"%L\"

Zmiana tej wartości na następującą (uzyskaną podczas tej krótkiej sesji czatu ) rozwiązała problem:

cmd.exe /s /k pushd \"%V\"

Mimo że problem został rozwiązany, początkowo nie wiem, co spowodowało tę zmianę ...

DMA57361
źródło
Zaakceptuję tę odpowiedź (chyba że komuś uda się opublikować coś bardziej przydatnego) po wygaśnięciu dwudniowego ograniczenia samoakceptacji.
DMA57361
Nie ma potrzeby PUSHD. Użyj /Dopcji, aby CD.
JdeBP
@JdeBP rzeczywiście to wydaje się działać. Ale ponieważ właśnie uzyskałem powyższe, zachęcając kogoś do obejrzenia ich Win7, nie ma to żadnego uzasadnienia. Czy zdarzyło Ci się mieć jakiś powód, dla którego proponowana metoda byłaby lepsza niż ta, z którą już skończyłem eksperymentalnie?
DMA57361
Mogę potwierdzić, że mój Win7 pro 64 używa pushdjak wyżej. Nie wiem, dlaczego używają pushdzamiast cd /d.
RBerteig
PUSHDwykonuje dodatkową pracę ponad to, co CD /Drobi. Tylko jeśli chcesz wykonać dodatkową pracę, jest to właściwe. Oczywiście wypycha poprzedni bieżący katalog na stos katalogów. Ale także, zakładając, że CMDrozszerzenia są włączone, w pewnych okolicznościach tworzy tymczasowe litery dysków.
JdeBP
3

Samo-odpowiedź DMA57361 wyraźnie rozwiązała pierwotny problem. Pomyślałem, że dodam trochę informacji, które odkryłem ...

Po pierwsze zauważyłem podejrzaną wartość w kluczu HKEY_CLASSES_ROOT\Directory\shell\cmdo nazwie Extended. Przy przeczuciu zmieniłem nazwę tej wartości na xxx-Extendedi teraz element menu „Otwórz tutaj okno poleceń” często pojawia się bez klawisza Shift. Ponieważ stare rozwiązanie Ulepszanie interfejsu użytkownika nie wymagało klawisza Shift, to odkrycie mnie cieszy!

Po drugie, moja stosunkowo niezmodyfikowana 64-bitowa instalacja systemu Windows 7 Pro ma klucz rejestru HKEY_CLASSES_ROOT\Directory\shell\cmd\commandz domyślną wartością cmd.exe /s /k pushd "%V"zestawu (zwróć uwagę, że typem jest REG_SZ, a nie REG_EXPAND_SZ. Znaczenie %V(i zgłoszone użycie %L) nie są wynikiem środowiska podstawianie zmiennych, a ekspansja musi być wykonana przez samego Explorera).

Dostępne wtyczki menu kontekstowego są wymienione jako podklucze klucza rejestru HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers. (Pozostałe klucze ....\shellexto programy obsługi innych rodzajów rozszerzeń powłoki.) Jeden z tych programów obsługi, a może jedno z innych rozszerzeń, prawdopodobnie jest źródłem dziwnej domyślnej wartości ....\commandklucza.

Edytuj Klucz sąsiedni HKEY_CLASSES_ROOT\Directory\Background\shell\cmd, również ma wartość o nazwie Extended. Okazuje się, że ta kontroluje menu kontekstowe w widoku zawartości folderu (prawy panel i sam pulpit), podczas gdy wyżej wymieniony kontroluje menu kontekstowe samych obiektów folderów (ich ikon po prawej lub na pulpicie lub w dowolnym miejscu w drzewie folderów po lewej).

RBerteig
źródło
Kilka przydatnych informacji, zwłaszcza na temat wyłączenia Extendedopcji, więc daj +1. Dzięki za wkład!
DMA57361
1

pushd jest wymagane, jeśli chcesz, aby system Windows 7 przełączał litery dysków na katalog, tzn. także przełącz dysk.

Potrzebny klucz rejestru wygląda następująco (nazywam go DOS) - umieść go w pliku .reg i uruchom:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\DOS]

[HKEY_CLASSES_ROOT\Folder\shell\DOS\command]
@="\"C:\\WINDOWS\\SYSTEM32\\CMD.EXE\" /s /K  pushd \"%v\""
JGP
źródło