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

HKEY_CLASSES_ROOT\Directory\shell\MyScript1

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

HKEY_CLASSES_ROOT\*\shell\MyScript1

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

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

1 ответ1

0

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

@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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .