¿Por qué "Abrir la consola aquí" no abre el cmd en la unidad correcta si no se usa en la Unidad C?

6

Cuando yo El Cambio + Clic derecho] una carpeta que no es en mi C conducir y seleccionar "Abrir consola aquí" me sale un cmd ventana hacia arriba que no es abierto en la ubicación correcta, pero en su lugar está apuntando a C:\Windows\system32. Tengo que cambiar manualmente a la unidad correcta, pero cuando lo hago está en la carpeta correcta. Esto no es el fin del mundo, pero es una molestia menor que realmente está empezando a ponerse de nervios ...

Nota: Funciona correctamente para ubicaciones en el C conducir.

¿Es este el comportamiento esperado cuando se usa fuera de C?

Si no, ¿cómo lo arreglo?
Si es así, ¿cómo puedo cambiarlo para cargar carpetas de otras unidades directamente?


Por ejemplo, si intento abrir una ventana de consola que apunta a una carpeta en mi escritorio, así:

Selecting "Open console here" from shift+right click menu for folder on desktop

Yo tengo un cmd ventana apuntando a C:\Windows\system32 que tengo que cambiar manualmente a la D:, pero al hacerlo puede ver que la carpeta dentro de D: ha sido seleccionado exitosamente:

CMD window that initially shows C:\win\sys32 folder, but a single "D:" command changes to correct location.


Actualizar

Parece que "Abrir consola aquí" podría no ser estándar (ver comentarios).

Para completar, resulta que veo la opción "Abrir ventana de comando aquí", que es más baja en la lista al hacer clic dentro de una carpeta (es "espacio de archivo", no en el mismo icono de la carpeta), según la imagen de abajo, así que hay alguna diferencia entre los dos que han surgido:

shift+RMB menu when opened directly from desktop (with nothing highlighted)

DMA57361
fuente
No puedo reproducir esto en Win 7 Pro de 64 bits. El menú lee "Abrir ventana de comando aquí" y lo hace. Probé una unidad de red asignada y una unidad física real.
RBerteig
Tampoco puedo replicar esto en Win 7 Ultimate SP1 de 64 bits. Como @Rberteig, funciona bien para mí. Casi me pregunto si tienes una extensión de shell o algo que está en conflicto.
Shinrai
Hmmm, estoy en el trabajo ahora, pero si cambio-rmb dentro de una carpeta (es decir, no en el ícono de una carpeta en sí, sino dentro de su "espacio de archivo") o directamente en el escritorio allí es una opción separada "Abrir ventana de comando aquí" disponible mucho más abajo en la lista (que no había visto antes ...) y eso funciona. @Shinrai: ¿tienes la misma opción que yo en el mismo lugar? Si no, también pienso que alguna extensión es una obra. (Supongamos que debo añadir que esto es Win 7 Pro x64 también. )
DMA57361
@Rberteig: consulte mi comentario anterior (dividido en solo 1 @ respuesta por comentario). Específicamente, ¿tienes la misma opción que yo en el mismo lugar? Si no, también pienso que alguna extensión es una obra.
DMA57361
@ DMA57361, lo revisaré en la oficina, pero no creo que lo haga. No tengo muchas (o ninguna) extensiones instaladas, por lo que suena como una fuente plausible de la diferencia.
RBerteig

Respuestas:

5

Habiendo examinado el registro y pregunté a la gente en el chat , He determinado que los parámetros que se pasan a la instancia de cmd que se invocó aquí fueron incorrectos.

El comando se puede encontrar en [HKEY_CLASSES_ROOT\Directory\shell\cmd\command] y tuve un (Default) valor de:

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

Cambiando esto al siguiente valor (obtenido en ese breve sesión de chat ) ha resuelto el problema:

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

Dicho esto, aunque el problema se solucionó, no sé qué causó este cambio inicialmente ...

DMA57361
fuente
Aceptaré esta respuesta (a menos que alguien logre publicar algo más útil) una vez que caduque la restricción de autoaceptación de dos días.
DMA57361
Sin necesidad de PUSHD. Utilizar el /D opción a CD.
JdeBP
@JdeBP de hecho, eso parece funcionar. Pero, como acabo de obtener lo anterior al hacer que alguien más vea su Win7, esto no viene con ningún razonamiento. ¿Tiene alguna razón por la cual su método sugerido sería mejor que el que ya he terminado con experimentos?
DMA57361
Puedo confirmar que mi Win7 pro 64 usa pushd como anteriormente. No se por que usan pushd en lugar de cd /d.
RBerteig
PUSHD hace trabajo adicional por encima de lo que CD /D hace. Solo si quieres que se haga ese trabajo adicional es apropiado. Por supuesto, inserta el directorio actual anterior en la pila de directorios. Pero también, suponiendo que CMD Las extensiones están habilitadas, se van creando letras de unidad temporales en ciertas circunstancias.
JdeBP
3

La auto-respuesta por DMA57361 Claramente ha resuelto el problema original. Pensé en añadir algo de información que descubrí ...

Primero, noté un valor sospechoso en la clave. HKEY_CLASSES_ROOT\Directory\shell\cmd llamado Extended. En una corazonada, he cambiado el nombre de ese valor a xxx-Extended y ahora el elemento de menú "Abrir ventana de comandos aquí" aparece a menudo sin la tecla Mayús. Dado que la antigua solución tweak-ui no requería la tecla de cambio, ¡este descubrimiento me hace feliz!

En segundo lugar, mi instalación de Windows 7 Pro de 64 bits relativamente sin modificar tiene la clave de registro HKEY_CLASSES_ROOT\Directory\shell\cmd\command con solo un valor predeterminado de cmd.exe /s /k pushd "%V" set (Tenga en cuenta que el tipo es REG_SZ, no REG_EXPAND_SZ. El significado de %V (y el uso reportado de %L ) no son el resultado de la sustitución de variables de entorno, y la expansión debe ser realizada por el propio Explorador.

Los complementos de menú contextual disponibles se enumeran como subclaves de la clave de registro HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers. (Las otras llaves en ....\shellex son controladores para otros tipos de extensiones de shell.) Uno de esos controladores, o quizás una de las otras extensiones, es probablemente el origen del extraño valor predeterminado de ....\command llave.

Editar Una llave vecina, HKEY_CLASSES_ROOT\Directory\Background\shell\cmd, también tiene un valor denominado Extended. Resulta que este controla el menú de contexto en la vista de contenido de la carpeta (panel derecho y el escritorio en sí), mientras que el que se menciona arriba controla el menú de contexto de los objetos de carpeta (sus iconos a la derecha o en el escritorio, o en cualquier lugar) en el árbol de carpetas a la izquierda).

RBerteig
fuente
Alguna información útil, especialmente sobre la desactivación de la Extended Opción, así que tienes un +1. ¡Gracias por el aporte!
DMA57361
1

pushd es necesario si desea que Windows 7 cambie las letras de la unidad al directorio, es decir, cambie la unidad también.

La clave de registro necesaria se parece a la siguiente (yo lo llamo DOS): póngala en un archivo .reg y ejecute:

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
fuente