Powershell 有没有办法使用正则表达式设置路径?

Powershell 有没有办法使用正则表达式设置路径?,powershell,Powershell,我正在使用PowerShell命令提示符,我想设置文件夹“folder”的位置。问题是文件夹可以无处不在 我已经尝试了命令Set Location和Resolve Path,但没有得到它 我想这样做: $path=解析路径“*/Folder” 设置位置$path 其中,*可以是所有父文件夹 有什么想法吗?可以试试这个: Get-ChildItem -Path .\ -Name Folder -Recurse -Depth 10 希望能有帮助。溴 编辑(见评论): 需要PowerShell v

我正在使用PowerShell命令提示符,我想设置文件夹“folder”的位置。问题是文件夹可以无处不在

我已经尝试了命令
Set Location
Resolve Path
,但没有得到它

我想这样做:

$path=解析路径“*/Folder”
设置位置$path
其中,
*
可以是所有父文件夹

有什么想法吗?

可以试试这个:

Get-ChildItem -Path .\ -Name Folder -Recurse -Depth 10
希望能有帮助。溴

编辑(见评论):

需要PowerShell v3或更高版本,您可以使用
$PSVersionTable
进行检查*


$path=(Get ChildItem.-Recurse-Directory | Where Object{$\u.Name-eq“Folder”}).FullName
这将递归地为您提供当前目录及其子目录中名为
Folder
的所有目录

但是,查询可以返回多个结果,因此如果要选择第一个结果,请使用
[0]
。另外,为了涵盖查询不返回结果的情况,请使用
@(…)
强制将返回的对象设置为数组,并检查它是否存在:

$f = @(Get-ChildItem . -Recurse -Directory | Where-Object { $_.Name -eq "Folder" })[0].FullName

if ( $f ) {
  cd $f
}
else {
  # Handle the error
}
cd
Set Location
的别名,因此您可以使用您喜欢的任何一种。重要的是要记住使用
FullName
属性,因为它包含文件夹的完整路径



*对于低于v3的PowerShell版本,请使用
| Where Object{$\u.PSIsContainer-eq$true}
而不是
-目录

如何知道您想要的是C:\win32\drivers,还是C:\bluetooth\drivers,或者任何无限的可能性?你想要第一个吗?最后一个?有吗?都是吗?@Aguestwho'scalledred谢谢!我通常会尝试添加一些解释,这样人们不仅可以解决他们的问题,还可以学到一些知识:)好的,我在3-4个月前就开始使用PS;)解决问题使我学得更好。但深入解释对我来说有点难。BRIt返回在主目录中找到的所有文件夹,深度为10层。剩下的代码将用于将其设置为当前位置。BR@robdy实际上是一个关于退出的问题,关于
-Name
参数,它不会说我把它和
-filter
混在一起了。从技术上讲,我的想法是检查是否存在同名项,并通过
-Recurse
进行迭代。我将如何使用它;)请看解释。
$f = @(Get-ChildItem . -Recurse -Directory | Where-Object { $_.Name -eq "Folder" })[0].FullName

if ( $f ) {
  cd $f
}
else {
  # Handle the error
}