Как я могу перебрать 30 папок и создать 4 подпапки в каждой, используя часть имени родительской папки? - PullRequest
0 голосов
/ 13 июня 2019

Итак, у меня есть 30 папок, которые следуют одному и тому же соглашению об именах:

XXX-application name

X - это числа от 2 до 4 цифр.В подпапках мне нужно создать следующие папки:

XXX-access mngt
XXX-app controls
XXX-support docs
XXX-vendor docs

Я знаю, как кодировать на Java, но я никогда не использовал PowerShell (моей маме нужна была помощь для ее работы), поэтому мне нужна помощь, я генерировалродительские папки со скриптом, который берет имена из текстового файла.

Мне нужна помощь, как это сделать, у меня есть текстовый файл с полным именем каждой родительской папки и отдельный текстовый файл, в котором просто есть номера каждого

Я еще ничего не пробовал, это скрипт, который я нашел / адаптировал для генерации родительских папок (это работает)

$folder="F:\Test\Folders"
$txtFile="F:\Test\MainFolder.txt"
$pattern="\d+.+"

get-content $txtFile | %{

    if($_ -match $pattern)
    {
        mkdir "$folder\$_"
    }
}

Это заняло каждую строку в текстовом файле и превратило его в папку

1 Ответ

1 голос
/ 13 июня 2019

Вот один из способов сделать это:

Get-ChildItem -Path '<path to parent folder>' -Directory |
    ForEach-Object {
        $parent = $_
        if($parent.Name -match '^(?<num>\d{2,4})-.*$') {
            "access mngt", "app controls", "support docs", "vendor docs" |
                ForEach-Object {
                    New-Item -Path $parent.FullName -Name "$($Matches.num)-$_" -ItemType Directory | Out-Null
                }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...