我正在尝试编写一个脚本并将其添加到右键单击上下文菜单中。要将项目添加到菜单中,我使用了以下方法: 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。