Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我是否可以在Powershell的路径中包含相对于当前目录的文件夹?_Node.js_Powershell_Path_Pscx - Fatal编程技术网

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')