![Como saber qual arquivo foi clicado com o botão direito?](https://rvso.com/image/1400003/Como%20saber%20qual%20arquivo%20foi%20clicado%20com%20o%20bot%C3%A3o%20direito%3F.png)
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.