![어떤 파일을 마우스 오른쪽 버튼으로 클릭했는지 어떻게 알 수 있나요?](https://rvso.com/image/1400003/%EC%96%B4%EB%96%A4%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%A7%88%EC%9A%B0%EC%8A%A4%20%EC%98%A4%EB%A5%B8%EC%AA%BD%20%EB%B2%84%ED%8A%BC%EC%9C%BC%EB%A1%9C%20%ED%81%B4%EB%A6%AD%ED%96%88%EB%8A%94%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
스크립트를 작성하여 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴에 추가하려고 합니다. 메뉴에 항목을 추가하기 위해 다음을 사용했습니다. 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에서.