我将其添加C:\Tools\scripts\PATH
到我的系统 PATH 中。它包含一些我经常使用的控制台应用程序。
当我从命令行运行它们时,一切都很好。例如:
RunHiddenConsole powershell.exe -file "C:\Tools\scripts\CopyDirStructure.ps1" "C:\Tools\speccy"
运行完全正常。(RunHiddenConsole 是其中的一个工具C:\Tools\scripts\PATH
)
问题是这在注册表中似乎无法正常工作。(我经常编辑上下文菜单以提高工作效率。)
命令如下:
然后我调用命令:
脚本并没有运行,我只得到了这个:
即使我从命令键中完全删除脚本并将其保留为“RunHiddenConsole”,我也会得到同样的结果。
如果我输入完整的可执行文件路径,它就可以工作。但这完全违背了将其添加到 PATH 的初衷。
你们有人知道发生了什么吗?我真的搞不懂。
非常感谢。
答案1
注册表命令不通过 CMD 运行,因此缺少许多功能,尤其是 CMD 从注册表创建的环境变量,最重要的是 PATH 变量。
您可以用 替换注册表命令
cmd /c RunHiddenConsole...
,但是这样会违背使用 RunHiddenConsole 的目的。
另一种可能性是将 RunHiddenConsole 复制到
C:\Windows\System32
,该文件夹始终被搜索,尽管除非绝对必要,否则不应修改这个非常重要的 Windows 文件夹。
最好的解决方案实际上是指定 RunHiddenConsole 程序的完整路径,因为在这种情况下 PATH 不是很有用。