PowerShell:将每个子目录添加到路径
在Windows 10和PowerShell上,如何将每个子目录添加到PATH变量 我对Linux的一些方法进行了改进(例如),并将它们“适应”到PowerShell,我遇到了以下问题PowerShell:将每个子目录添加到路径,powershell,path,appveyor,Powershell,Path,Appveyor,在Windows 10和PowerShell上,如何将每个子目录添加到PATH变量 我对Linux的一些方法进行了改进(例如),并将它们“适应”到PowerShell,我遇到了以下问题 '$env:PATH = $env:PATH + (find C:\Users\appveyor\ -type d -printf "\";%pbuild\\"")' 这将抛出文件名、目录名或卷标语法不正确。 更详细一点:我正在appveyor上运行这个程序,并尝试将appveyor下的每个路径(为了清晰起见简
'$env:PATH = $env:PATH + (find C:\Users\appveyor\ -type d -printf "\";%pbuild\\"")'
这将抛出文件名、目录名或卷标语法不正确。
更详细一点:我正在appveyor上运行这个程序,并尝试将
appveyor
下的每个路径(为了清晰起见简化)添加到路径中,例如C:\Users\appveyor\*\build\
。Linux上的find
命令与Windows上的find
命令非常不同
在您的情况下,我会在PowerShell中使用Get ChildItem
(也可以通过别名gci
,dir
,ls
)返回一个目录对象数组,将其添加到作为数组铸造的当前路径中,然后使用Windows路径分隔符-将它们连接起来,该分隔符是分号代码>
可能是这样的:
$env:PATH=(
@($env:PATH)+(
Get ChildItem-LiteralPath'C:\Users\appveyor'-目录-Recurse
)
)-join[System.IO.Path]::路径分隔符
这是基于@briantist的建议;主要区别在于join
语法
要在appveyor上完成此工作,请执行以下操作:
{ps:
"$env:PATH =
@($env:PATH) + [string]::join(
\";\",
(Get-ChildItem -LiteralPath \"[PATH TO SEARCH]\" -Directory -Recurse).fullname
)"
}
这一点以前已经得到了回答。你本可以在你问之前搜索一下。。。看看霍格布的答案,但这是一个不同的问题;这不是关于设置环境路径,而是关于在设置路径的同时正确使用FIND
;但是,我仍然得到文件名、目录名或卷标语法不正确。
错误。
{ps:
"$env:PATH =
@($env:PATH) + [string]::join(
\";\",
(Get-ChildItem -LiteralPath \"[PATH TO SEARCH]\" -Directory -Recurse).fullname
)"
}