Цель
Исключить все подкаталоги при запуске сценария PowerShell, который соответствует шаблону регулярного выражения имени файла
Структура каталогов
/
- 2018-11-19.md
18-2/
- 2018-10-16.md
- 2019-01-14.md
- 2019-10-10.md
18-3/
- 2019-01-13.md
- 2019-04-25.md
Сценарий PowerShell
$file = '2018-11-19.md'
Get-ChildItem -recurse | where-object { $_.FullName -match '[0-9]{4}-[0-9]{2}-[0-9]{2}.md' } |
ForEach-Object {$fullname = $_.fullname; (Get-Content $_.fullname | foreach-object {
$_ -replace "apple", "orange"
}) | Set-Content $fullname}
(Get-Content $file | ForEach-Object {
$_ -replace '<p(.*?)>(.*?)</p>', '$2'
}) | Set-Content -Encoding Utf8 $file
Get-ChildItem -recurse | where-object { $_.FullName -match '[0-9]{4}-[0-9]{2}-[0-9]{2}.md' } |
foreach-Object {$fullname2 = $_.fullname; (Get-Content $_.fullname |
pandoc -f markdown -t markdown -o $fullname2 $fullname2
)}
Подробности
- Цель - запустить скрипт PowerShell только для файлов в корневом каталоге .Эти файлы в корне изменятся, но всегда будут именоваться в соответствии с указанным соглашением.Регулярное выражение в сценарии PowerShell успешно соответствует этому имени файла.
- В настоящее время сценарий изменяет все файлы в приведенном выше примере каталога.
- Любые примеры, которые я могу найти, показывают, как исключитьконкретные каталоги, указав их имена в скрипте (например,
-Exclude folder-name
).Я хочу исключить все подкаталоги, не называя их конкретно, потому что ... - ... В будущем подкаталоги могут быть добавлены для 18-4, 19-5 и т. Д.., поэтому кажется, что исключение, основанное на регулярном выражении, имело бы смысл.
Попытки
Чтобы ограничить область действия скрипта корневым каталогом, я попробовал варианты на -notmatch
с\
, \*
, \*.*
, \\*
и т. Д., Но безуспешно.
Чтобы исключить подкаталоги, я пробовал варианты на -Exclude
с теми же путями, но безуспешно.
Мои знания PowerShell недостаточно развиты, чтобы продвинуться дальше.Я был бы признателен за любую помощь или указали в правильном направлении.Спасибо за любую помощь.