Как узнать, по какому файлу был сделан щелчок правой кнопкой мыши?

Как узнать, по какому файлу был сделан щелчок правой кнопкой мыши?

Я пытаюсь написать скрипт и добавить его в контекстное меню правой кнопки мыши. Чтобы добавить элементы в меню, я использовал это: Windows: Как добавить действие пакетного сценария в контекстное меню, за исключением того, что вместо

HKEY_CLASSES_ROOT\Directory\shell\MyScript1

Я использовал

HKEY_CLASSES_ROOT\*\shell\MyScript1

поэтому они будут отображаться во всех файлах, независимо от расширения.

Теперь, в самом файле bat, мне нужен способ узнать, какой файл был нажат правой кнопкой мыши, чтобы я мог использовать его в качестве ввода. Есть ли способ поместить полный путь к файлу в переменную для последующего использования?

решение1

Если аргумент, переданный пакетному скрипту, является файлом, вы можете использовать переменные среды, чтобы получить такие данные, как путь, имя файла, расширение файла и т. д. Например:

@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

Это работает независимо от того, перетаскиваете ли вы файл в скрипт или передаете его как параметр из командной строки. Вы можетеузнайте больше об аргументах и ​​их расширенном синтаксисена SS64.com.

Связанный контент