我有一个简单的批处理文件,用于在 Windows XP 中创建文件夹内的一组特定子文件夹。我将其设置为右键单击上下文菜单,这样当我在 Windows 资源管理器中右键单击文件夹时,就可以执行批处理文件并在其中创建 10 个特定文件夹。
我将相同的批处理文件移到了 Windows 7。我可以手动运行该批处理文件,而且它运行良好,但是当我从右键单击上下文菜单运行它时,所有文件夹都会在 \Windows\System32\ 目录中创建,而不是在右键单击的目录中。
我知道 Windows XP 中的“当前目录”过去用于承载右键单击文件夹的值,现在在 Windows 7 中当前目录值似乎更改为 System32 文件夹。
我试图找到一种方法来读取鼠标右键单击的当前目录,但找不到该值。“CD”是批处理执行开始时的 System32 文件夹。
有什么建议么?
答案1
您可以更改command
注册表中的条目以添加参数:
C:\Users\Me\Batches\make_dir.cmd "%1"
然后在批处理文件中使用该参数:
cd /d "%1"
md SomeDirectory
md SomeOtherDirectory
至于混淆,我猜想为 shell 命令启动的进程的工作目录从未真正指定过,因此可能是任何目录。而且 Windows 7 引入的库可能会导致文件夹驻留在“非路径”中。