
Я пытаюсь написать скрипт и добавить его в контекстное меню правой кнопки мыши. Чтобы добавить элементы в меню, я использовал это: 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.