Powershell导航到未知目录

时间:2020-05-06 10:26:41

标签: powershell

我偶然发现了不幸的情况,必须位于另一个目录所在的目录中:

C:\Test\[Folder with unknown name]\theFileINeed.txt

上述结构源自外部来源的Zip文件。所以我不能改变结构。

我的目标是导航到名称未知的目录,因此这是我的工作目录,可以在其中执行更多命令。 (例如,像Get-Childitem)

是否有一种简单的方法例如使用cd命令移到该目录吗?

我在Resolve-Path上进行了一些摆弄,但是找不到有用的解决方案。

谢谢。

1 个答案:

答案 0 :(得分:1)

考虑以下结构:

C:\TMP\TEST
├───unknowndir1
│   │   nonuniquefile.txt
│   │   uniquefile.txt
│   │
│   ├───nonuniquesubdir
│   └───uniquesubdir
└───unknowndir2
    │   nonuniquefile.txt
    │
    └───nonuniquesubdir

您可以执行cd .\test\*\uniquesubdir,但不能cd .\test\*\nonuniquesubdir,因为会生成错误(...) path (...) resolved to multiple containers。即使使用cd .\test\*\uniquesubdir\..,也可能出现相同的错误,就好像它甚至没有检查uniquesubdir的存在一样。

因此,如果要基于包含的文件输入未知目录,则必须执行以下操作:cd (Get-Item .\test\*\uniquefile.txt).DirectoryName。 如果您使用nonuniquefile.txt,它将失败,因为它再次解析为两个不同的目录。如果您不在乎使用哪个目录,则可以使用cd (Get-Item .\test\*\nonuniquefile.txt).DirectoryName[0]输入这些目录中的第一个。