Powershell переход в неизвестный каталог - PullRequest
1 голос
/ 06 мая 2020

Я наткнулся на неприятную ситуацию, когда мне пришлось находиться в каталоге, в котором находится другой каталог:

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

Упомянутая выше структура происходит из Zip-файла из внешнего источника. Поэтому я не могу изменить структуру.

Моя цель - перейти в каталог с неизвестным именем, так что это мой рабочий директрой, и я могу выполнять в нем дальнейшие команды. (Например, Get-Childitem)

Есть ли простой способ, например, использовать команду cd для перехода в этот каталог?

Я немного повозился с Resolve-Path, но не смог Не нашел полезного решения.

Заранее спасибо.

1 Ответ

1 голос
/ 06 мая 2020

Рассмотрим эту структуру:

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\.., как если бы он даже не проверял наличие uniqueubdir.

Итак, если вы хотите войти в неизвестный каталог на основе файла, который он содержит, вам нужно будет сделать что-то вроде этого: cd (Get-Item .\test\*\uniquefile.txt).DirectoryName. Это не удастся, если вы используете nonuniquefile.txt, поскольку он снова разрешается в два разных каталога. Вы можете ввести первый из этих каталогов с cd (Get-Item .\test\*\nonuniquefile.txt).DirectoryName[0], если вам все равно, какой из них вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...