我偶然发现了不幸的情况,必须位于另一个目录所在的目录中:
C:\Test\[Folder with unknown name]\theFileINeed.txt
上述结构源自外部来源的Zip文件。所以我不能改变结构。
我的目标是导航到名称未知的目录,因此这是我的工作目录,可以在其中执行更多命令。 (例如,像Get-Childitem)
是否有一种简单的方法例如使用cd
命令移到该目录吗?
我在Resolve-Path
上进行了一些摆弄,但是找不到有用的解决方案。
谢谢。
答案 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]
输入这些目录中的第一个。