我想从右键单击上下文菜单运行集中存储的批处理文件,但批处理文件需要将其相对位置(%~dp0)引用更改为用户右键单击的位置而不是批处理文件的位置。
所以基本上我需要这个序列来工作......
1)当用户在文件资源管理器中右键单击上下文菜单中选择一个选项时,他们所在的文件夹将被设置为变量
2)启动批处理文件并使用步骤1中设置的位置变量执行正在执行的工作......
我知道完成我想要完成的工作(创建新文件夹)的批处理代码,并且我能够为右键单击上下文菜单创建一个注册表项,我只是不知道如何将用户右键单击的文件夹位置作为变量传递到批处理文件中。
有什么想法吗?PowerShell 会是更好的选择吗?
答案1
我想到了....
1)注册表项设置右键单击上下文选项..
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\Create Client Folders]
@="&Create Client Folders"
"Icon"="%SystemRoot%\\System32\\shell32.dll,71"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Create Client Folders\command]
@="DRIVELETTER:\\FOLDER\\batch_file_name.bat \"%V\""
- 在批处理文件中,使用 %cd% 获取右键单击位置(这仅在单击文件夹的打开的“空白处”时发生,而不是单击文件夹本身...我的示例批处理文件根据文本文件的内容创建文件夹...
设置TheRoot =%cd%
for /F "tokens=1 delims=," %%d IN (DRIVELETTER:\FOLDER\TextFileName.txt) DO md "%TheRoot%\%%d"
文本文件只是一个带有文件夹名称的返回分隔文件