关于在 Windows 中轻松替代/管理 PATH 的提示

关于在 Windows 中轻松替代/管理 PATH 的提示

我来自 Linux,习惯于将大多数应用程序安装到 /usr/bin,将我的工具放在 ~/bin。这意味着我很少需要修改 PATH 变量。

由于我是一名开发人员,因此我需要使用命令行。我计划使用 powershell,但我讨厌每次安装新实用程序(例如“java”)时都需要将路径添加到 PATH。

那么,我有什么选择可以拥有与在 Linux 中相同的体验,在 Linux 中安装应用程序(通常在 'c:\program files\some app' 下)并在我的 shell 中使用它?也许可以扫描整个 'c:\program files'(通常应用程序位于 'c:\program files\some app' 或 'c:\program files\some app\bin' 下)?

答案1

一个有趣的问题,恐怕我没有一个很好的答案......但我确实想出了这个想法:

在 %USERPROFILE% 目录中创建一个目录,甚至可以将其命名为 bin 并添加您的路径。然后运行一个脚本,该脚本会“构建”一堆指向程序文件目录中可执行文件的硬链接……

gci -r -include *.exe 'C:\Program Files' | % { fsutil hardlink create "C:\Users\Ittay\bin\$_.Name" "$_.FullName" }

这有几个问题,比如完全缺乏冲突处理,64 位系统需要“Program Files”和“Program Files (x86)”目录,硬链接也只在 NTFS 卷上可用……当然,如果某些东西改变了 bin 目录的内容,它可以将这些更改镜像到您的程序中(尽管简单的删除是安全的)。可能还有很多很多。也许其他人可以将此作为伟大事业的起点?

答案2

我将 Windows 可安装程序分为三类 - 轻量级实用程序(大多数您在 Linux 中习惯的命令)、重量级(使用少量 DLL 和辅助文件安装的命令,例如 Flac)和应用程序。

您不太可能从命令行调用大型应用程序(例如 Firefox、Open Office 等),因此请将它们安装在默认区域中。

然后,我将轻量级实用程序安装在几个众所周知的地方 - 主要是 ~/bin 和 c:/bin,并将这两个目录放在路径的前面。

最后,我将中等量级的条目放在 c:/apps 下的自己的目录中——如果您从命令行调用这些程序,则需要转义的特殊字符越少越好。

我也使用 msys。cygwin 和 msys 对 windows 文件系统的敌意都比我想象的要大,但 msys 的干扰性较小,但也不太完整。

在 Windows 上,您的路径可能仍会比在 Unix 上大。我有一个“path2.bat”命令,它通过 tr 运行路径,这样我就可以在自己的行上看到每个条目,并且它会填满一个屏幕。

相关内容