PS скрипт копирует новые файлы

Вы уверены, что правильно интерпретировали документацию re.sub ?

*?, +?, ?? «» , '+' и '?' квалификаторы все жадные; они соответствуют как можно большему количеству текста. Иногда такое поведение нежелательно; если RE & lt;. > сопоставляется с '

title

', он будет соответствовать всей строке, а не только '

'. Добавление '?' после того, как квалификатор делает его исполнением в неживой или минимальной форме; как можно меньше символов. С помощью .*? в предыдущем выражении будет соответствовать только ''.

blockquote>

Добавление ? превратит выражение в неживое.

Greedy:

re.sub(".*", "-", "abc")

non-Greedy:

re.sub(".*?", "-", "abc")

Обновление: FWIW re.sub делает именно то, что он должен:

>>> from re import sub
>>> sub(".*?", "-", "abc")
'-a-b-c-'
>>> sub(".*", "-", "abc")
'-'

См. удивительный ответ @ BrenBarn о том, почему вы get -a-b-c-:)

Вот визуальное представление о том, что происходит:

.*?

Regular expression visualization [/g3]

Debuggex Демонстрационный

1
задан LotPings 13 July 2018 в 20:03
поделиться

2 ответа

Я не уверен, есть ли простой способ закодировать это, но общий ответ будет использовать командлет Get-ChildItem.

"Командлет Get-ChildItem получает элементы в одном или более определенные местоположения.Если элемент является контейнером, он получает элементы внутри контейнера, известные как дочерние элементы. Вы можете использовать параметр -Recurse для получения элементов во всех дочерних контейнерах и использовать параметр -Depth для ограничения количества уровней для рекурсии. "

Используя Get-ChildItem, вы можете получить список файлов, находящихся в обоих каталогах, а затем сравнить их, чтобы узнать, имеют ли они одно и то же имя. Затем создайте аргумент if () на основе критериев, которые вы хотите использовать для их сравнения.

Это не полный ответ, но это хорошая отправная точка.

0
ответ дан Jacob Kucinic 17 August 2018 в 12:12
поделиться

Спасибо всем за подачу, очень благодарен!

Я перешел на маршрут командного файла и создал для достижения моей цели следующее:

@echo off
setlocal

set _source="C:\users\user1\desktop\source"
set _dest="C:\users\user1\desktop\dest"

robocopy %_source% %_dest% *.bak /mir /XC /XN /XO

Любое мнение на этом скрипте рекомендуется!

0
ответ дан d0nde 17 August 2018 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: