Synaptics Touchpad Helper 在用户登录时作为计划任务运行。配置为运行可执行文件的命令行是...
"\Program Files\Synaptics\SynTP\SynTPEnh.exe"
您可能认为它安装在 C:\ 驱动器上。尽管乍一看它似乎格式不正确,但任务可以毫无问题地启动该进程。有人能准确解释一下进程如何能够从这样的路径运行而无需指定驱动器号吗?
答案1
每个进程都有一个当前驱动器和目录,运行计划作业的进程也不例外。
当进程访问文件时,如果没有指定驱动器和目录,Windows 将假定使用当前驱动器和目录。如果指定了目录,但没有指定驱动器,Windows 将假定使用当前驱动器。
在这种情况下,由于路径中没有指定驱动器,Windows 将假定调度程序进程的当前驱动器,该驱动器几乎肯定是系统驱动器 - 通常是 C:
答案2
好吧,它显然假设C:\
我不认为它格式错误,在(正确的)DOS 中这样做已经 15 年了。在 DOS 的情况下,它会查看您当前所在的驱动器,因此如果您在并且C:\windows
您说\blah\bleh
然后它就会运行c:\blah\bleh
如果您在D:\>
并且您做了\blah\bleh
它假设你的意思是d:\blah\bleh
它是一个相对路径,其中路径相对于您所在的目录。这就是 CMD.exe 和 DOS 的情况。任务计划程序可能有一些设置,如启动,告诉它,或者它只是假设 C。但没有任何格式错误,这并不奇怪。这是一个相对路径。就像在某种意义上C:\windows\system32>calc.exe
可能是相对的。或者 这与从您所在的任何目录 执行C:\>windows\system32\calc.exe
不同 。而没有前面的反斜杠的执行意味着 windows 必须是当前目录的子目录。C:\blah>\windows\system32\calc.exe
\windows
windows
有人可能会针对任务调度程序给出更好的答案,但无论如何。