Как я могу получить список с абсолютными путями, но с определенным правилом имени? (пакетный скрипт) - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу создать текстовый файл, содержащий абсолютные пути для моей резервной копии Robocopy. Однако я хочу только создавать резервные копии папок с конкретными именами.

Это будет моя исходная папка:

\\\fileserver\Projects

содержит папки типа

20090-Miller-Georg
20094-Johnson-Susan
20097-Miller-Sarah
20125-Olston-John
20130-Johnson-Alex
....

Теперь перейдем к сложному: скажем, я хочу перечислить только папки, которые содержат, например, Миллер и Джонсон, поэтому мой список будет примерно таким:

\\\fileserver\Projects\20090-Miller-Georg
\\\fileserver\Projects\20094-Johnson-Susan
\\\fileserver\Projects\20097-Miller-Sarah
\\\fileserver\Projects\20130-Johnson-Alex
...

В пакетном скрипте dir не разрешает этот вид сортировки. Есть ли другой способ?

1 Ответ

0 голосов
/ 11 сентября 2018

Вот что вы можете добавить в скрипт .bat file.Он будет генерировать UNC-пути.

SET "BASEDIR=\\fileserver\Projects"

powershell -NoProfile -Command ^
    "Get-ChildItem -Directory -Path "%BASEDIR%" |" ^
        "ForEach-Object {" ^
            "if ($_.Name -cmatch '-Miller-|-Johnson-') {" ^
                "$_.FullName" ^
            "}" ^
        "}"

Конечно, при использовании PowerShell это менее загадочно.

$basedir = '\\fileserver\Projects'

Get-ChildItem -Directory -Path $basedir |
    ForEach-Object {
        if ($_.Name -match '-Miller-|-Johnson-') {
            $_.FullName
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...