1

Это кажется таким простым, но я не могу найти ответ. У меня есть корневая папка с именем Processing. Внутри корневой папки пользователь перемещает папку с сотнями других папок и файлов. Я не знаю, как будет называться имя этой папки.

Все, что я пытаюсь сделать, это получить это имя единственной подпапки и поместить его в переменную.

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

**Such as:**
$folderName = SUBFOLDER
PROCESSING
  -> SUBFOLDER  (All I need is this name)
        ->F1    (Not any of these)
        ->F2
        ->F3
        ->etc...

2 ответа2

1

Вы бы использовали ключи -filter и -Directory.

$folder = 'NewFiles'
Get-ChildItem -Path 'D:\Temp' -Filter $folder -Directory -Recurse

    Directory: D:\Temp


Mode                LastWriteTime         Length Name                                                                                                
----                -------------         ------ ----                                                                                                
d-----        30-Dec-18     20:39                NewFiles 

Обновление для ОП.

Правильно, NewFiles - великое дитя временного секретаря.

(Get-ChildItem -Path 'D:\Temp' -Filter $folder -Directory -Recurse).FullName

# actual UNC
D:\Temp\PngFiles\NewFiles
1

Чтобы исключить F1, F2 и т.д., Не используйте опцию -Recurse. Также используйте -Name, чтобы получить только имя подпапки без каких-либо дополнительных данных. Так,

$foldername = get-childitem -Path C:\Temp\Processing -Directory -Name

поместит имя этой подпапки (вы сказали, что она была только одна) в переменную $ foldername.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .