我已经使用下面的脚本在我的系统中注册了一个 URL 协议来启动一个批处理文件“showPath.bat”。
@echo off
reg add HKEY_CLASSES_ROOT\ProtoTest /t REG_SZ /d "My Description" /f
reg add HKEY_CLASSES_ROOT\ProtoTest /v "URL Protocol" /t REG_SZ /d "" /f
reg add HKEY_CLASSES_ROOT\ProtoTest\shell /f
reg add HKEY_CLASSES_ROOT\ProtoTest\shell\open /f
reg add HKEY_CLASSES_ROOT\ProtoTest\shell\open\command /t REG_SZ /d "C:\TestFolder\showPath.bat" /f
pause
“showPath.bat”的内容只是显示当前工作目录。IE。,
@echo off
SET var=%cd%
ECHO %var%
pause
如果我通过双击直接运行批处理文件,我可以正确看到它的路径。但是,如果我使用上面注册的 URL 协议启动批处理文件。即,从 Chrome 浏览“ProtoTest://”,批处理文件运行,但显示路径“C:\Windows\system32”而不是批处理文件的目录。因此,我相信使用 URL 协议启动的应用程序以 system32 作为工作目录运行。现在,如何在使用 URL 协议从浏览器启动时从其自己的目录运行批处理文件 - 无需修改批处理文件本身。我只能更改 URL 协议。