Node.js 我是否可以在Powershell的路径中包含相对于当前目录的文件夹?
我运行了很多节点项目,并且通常在以下位置有二进制文件:Node.js 我是否可以在Powershell的路径中包含相对于当前目录的文件夹?,node.js,powershell,path,pscx,Node.js,Powershell,Path,Pscx,我运行了很多节点项目,并且通常在以下位置有二进制文件: \node\u modules\.bin …相对于项目文件夹。我希望能够让PATH始终包含这些目录,如果它们存在的话。我不想包括其他目录,只是相对于当前目录的目录。我熟悉 从PSCX和其他Powershell基础添加PathVariable,但是如何在路径中包含相对于当前目录的文件夹? 编辑:如问题中所述,我希望路径会随着目录的更改而保持更新。这不仅仅是询问如何使用pwd您可以在Env:path中使用相对路径,找到的二进制文件将动态更新:
\node\u modules\.bin
…相对于项目文件夹。我希望能够让PATH
始终包含这些目录,如果它们存在的话。我不想包括其他目录,只是相对于当前目录的目录。我熟悉
从PSCX和其他Powershell基础添加PathVariable
,但是如何在路径中包含相对于当前目录的文件夹?
编辑:如问题中所述,我希望路径会随着目录的更改而保持更新。这不仅仅是询问如何使用
pwd
您可以在Env:path中使用相对路径,找到的二进制文件将动态更新:
例如:
或使用(PSCX):
与使用$(pwd)
不同,
不会立即解析为绝对路径,因此路径始终相对于当前工作目录
对此进行测试:
$ which uuid
C:\Users\username\Documents\myapp\node_modules\.bin\uuid.cmd
然后更改目录,uuid现在引用不同目录中的程序:
$ cd ..\blog\
$ which uuid
C:\Users\username\Documents\blog\node_modules\.bin\uuid.cmd
还可以在用户或系统环境中持续更改路径:
[Environment]::SetEnvironmentVariable(($env:PATH + ';.'), 'User')
或
安全说明:当输入命令时,Windows将自动搜索$env:PATH
中的所有目录,以查找具有$env:PATHEXT
中列出的扩展名之一的文件,并执行其找到的第一个匹配项。这取决于您在搜索路径中的确切位置,它甚至可能取代系统可执行文件
您可能需要查看其他方法。您应该能够通过简单地将“\node\u modules\.bin”(您可能需要将反斜杠加倍;我不太确定)添加到系统路径来完成此操作。
与$(pwd)不同
@AnsgarWiechers您的评论很粗鲁,但您是正确的:您可以将相对文件夹添加到路径(我不知道这一点)。写下它,我会把它标记为正确的。我认为这里是尽职调查,所以在提问之前,实际上要测试一个问题的主题。特别是对于有30K代表的人,我不认为当忽视了尽职调查时,这是粗鲁的。YMMV。@AnsgarWiechers我考虑过“.”但只是假设“.”会立即解决(即它是静态的而不是动态的)。回复:尽职调查:我写了一个有点复杂的脚本,在你发布回答评论之前,我使用find string
和prompt
动态地完成了这项工作。你本可以更礼貌地提出同样的观点,同样地,我也希望有超过10万业力的人能做得更好。
$ cd ..\blog\
$ which uuid
C:\Users\username\Documents\blog\node_modules\.bin\uuid.cmd
[Environment]::SetEnvironmentVariable(($env:PATH + ';.'), 'User')
[Environment]::SetEnvironmentVariable(($env:PATH + ';.'), 'Machine')