Como saber qual arquivo foi clicado com o botão direito?

Como saber qual arquivo foi clicado com o botão direito?

Estou tentando escrever um script e adicioná-lo ao menu de contexto do botão direito. Para adicionar os itens ao menu, usei isto: Windows: Como adicionar ação de script em lote ao menu do botão direito, exceto em vez de

HKEY_CLASSES_ROOT\Directory\shell\MyScript1

eu usei

HKEY_CLASSES_ROOT\*\shell\MyScript1

então eles apareceriam em todos os arquivos, independentemente da extensão.

Agora, no arquivo bat real, preciso saber qual arquivo foi clicado com o botão direito, para que possa usá-lo como entrada. Existe alguma maneira de colocar o caminho completo do arquivo em uma variável para uso posterior?

Responder1

Se um argumento passado para um script em lote for um arquivo, você poderá usar variáveis ​​de ambiente para obter informações como caminho, nome do arquivo, extensão do arquivo, etc.

@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

Isso funciona independentemente de você arrastar o arquivo para o script ou passá-lo como parâmetro na linha de comando. Você podesaiba mais sobre argumentos e sua sintaxe estendidaem SS64.com.

informação relacionada