У меня есть несколько файлов, которые следуют такой схеме:
<BaseName> . <Version> [ - <Tag> - <#> ] . <Extension>
Например:
basename.1.0.0.ext
basename.1.0.0-aaa-1.ext
basename.1.0.0-aaa-2.ext
basename.1.0.0-aaa-3.ext
basename.1.0.0-bbb-1.ext
basename.1.0.0-bbb-2.ext
basename.1.0.0-bbb-3.ext
Теперь мне нужно написать строгий, который будет копировать только файл с определенной частью тега (или без тега) целевой папки. Например:
xcopy *-aaa-*.ext \\server\path /f /y
Будет копировать только файлы с тегом 'aaa'. Все идет нормально.
Проблема в том, что скрипт также должен работать с файлами без тегов, в основном мне нужно все, что соответствует *.ext
кроме того, что соответствует *-*.ext
Ext .
К сожалению, у меня есть ряд ограничений здесь:
- Я не могу изменить шаблон имени или расположение этих файлов.
- Часть 'version' неизвестна, поэтому
*.1.0.0.ext
не будет работать. - "Версия" не имеет фиксированной длины, поэтому
*.?.?.?.ext
не будет работать. - Параметр exclude
xcopy
не принимает шаблон, только список файлов, поэтому это не сработает. - Я застрял с использованием пакетных сценариев для этого. Вызов PowerShell не исключен, но для его работы потребуется немало накладных расходов, поэтому я хотел бы избежать этого, если это возможно.
Фактический сценарий должен выглядеть следующим образом:
xcopy "%SOURCE%" "%DEST%" /f /y
И переменные, используемые этим сценарием, будут сохранены во внешнем файле конфигурации.
Как я могу написать этот скрипт, чтобы он работал с любым набором файлов, как с определенным «тегом», так и без «тега»?