使 windows 快捷方式(由加速键启动)从当前活动目录启动

Making windows shortcut(started by accelerate keys) start from currently active directory

我需要的是很普通的,是这样的:

在windows OS(我的例子是win7)上,我们可以为某个程序创建一个快捷方式(例如*.exe, *.bat ...),然后使用右键-点击为该快捷键绑定一个加速键组合。

所以我创建了一个 .bat 文件用于在 cmd 模式下启动我的 python.exe,然后为此 .bat 创建了一个 shortcut 并添加了 ctrl + alt + Num 9 为了启动python更方便

到目前为止这是有效的,但它总是从 python 默认目录开始:

C:\windows\system32

我希望它可以完全从当前活动文件夹的目录开始(例如,如果我在 D:\certain_python_modules\module_1 并输入此键盘快捷方式,我需要在 python,os.getcwd() 打印完全相同的目录),我该怎么办?

您可以在 python 的 os 模块中使用 os.getcwd() 方法,然后使用 os.system() 给系统命令来改变你的目录 不过,这是一种间接的方法。 希望对你有帮助

不太清楚你在做什么和想做什么。

  1. 没有全局当前活动文件夹,每个进程都有其当前文件夹(称为当前目录)。它可以在启动进程时以编程方式指定,也可以在启动后更改,但默认情况下由调用进程继承。
  2. 具体来说,每个命令提示符都有自己的当前文件夹
  3. 当您按下 ctrl + alt + Num 9 序列时,它会被检测到shell 和 shell 执行与其关联的快捷方式 (a.ka. as link)。您当前正在使用的程序将被完全忽略。启动进程的当前目录设置为:
    • 快捷方式属性中的'From'字段sheet,如果设置了
    • 快捷方式的文件位置,否则

当你说 我在 D:\certain_python_modules\module_1 时,你是指在命令提示符中还是在 explorer/file 资源管理器中 window ?

无论哪种方式,你都不能用任何标准的 Windows 功能做你想做的事,你可能可以通过一些工作(甚至可能不多,我不知道)用像 AutoHotKey 这样的东西来做或您自己的程序。


如果您在命令提示符下工作,尽管您可以使用命令而不是键盘快捷键来执行与您正在尝试的操作类似的操作:要么:

  • 键入程序的完整路径,
  • 或将命令的目录添加到您的 PATH 环境变量并键入其名称,
  • 或者,如果程序的名称很长并且您想输入更少的内容,请制作一个只调用您的程序的批处理文件,给它起一个短名称(例如 py.bat),然后添加批处理文件的目录到您的 PATH 变量。

无论您使用这些方法调用它,被调用程序(python,在您的例子中)都会将其当前目录设置为您调用它的目录。