![¿Cómo saber en qué archivo se hizo clic derecho?](https://rvso.com/image/1400003/%C2%BFC%C3%B3mo%20saber%20en%20qu%C3%A9%20archivo%20se%20hizo%20clic%20derecho%3F.png)
Estoy intentando escribir un script y agregarlo al menú contextual del botón derecho. Para agregar los elementos al menú, he usado esto: Windows: Cómo agregar una acción de secuencia de comandos por lotes al menú contextual, excepto en lugar de
HKEY_CLASSES_ROOT\Directory\shell\MyScript1
he usado
HKEY_CLASSES_ROOT\*\shell\MyScript1
para que aparezcan en todos los archivos, independientemente de la extensión.
Ahora, en el archivo bat real, necesito una forma de saber en qué archivo se hizo clic derecho, para poder usarlo como entrada. ¿Hay alguna manera de poner la ruta completa del archivo en una variable para su uso posterior?
Respuesta1
Si un argumento pasado a un script por lotes es un archivo, puede usar variables de entorno para obtener elementos como la ruta, el nombre del archivo, la extensión del archivo, etc. Por ejemplo:
@echo off
::
::If no parameter is passed, exit.
::
if [%~1]==[] echo Missing parameter! Script will exit... && exit /b
::
::If file does not exist, exit.
::
if not exist "%~1" echo File does not exist. Are you sure "%~1" is a file? && exit /b
echo.
echo File info
echo ---------
echo Path: %~dp1
echo Name: %~n1
echo Extension: %~x1
echo.
pause
exit /b
Esto funciona independientemente de si arrastra el archivo al script o lo pasa como parámetro desde la línea de comando. Puedeaprenda más sobre los argumentos y su sintaxis extendidaen SS64.com.