Название заголовка уже объясняет это, но я буду здесь более конкретным.

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

например

  1. Вставьте .jpg в 100 папок
  2. .jpg заменяет все остальные файлы .jpg независимо от имени файла
  3. Вставленный файл .jpg переименовывается в исходное перезаписанное имя файла.

Изменить: Забыл упомянуть, что все эти папки являются дочерними от одного родителя, а не разбросаны по всему диску.

1 ответ1

3

C:\newpic.jpgC:\newpic.jpg Вот для чего идеально подходит PowerShell:

ls "C:\files" -Recurse -Filter "*.jpg" | ForEach{ cp "C:\newpic.jpg" $_.FullName -WhatIf }

более подробная версия:

Get-ChildItem "C:\files" -Recurse -Filter "*.jpg" | ForEach-Object { Copy-Item "C:\newpic.jpg" -Destination $_.FullName -WhatIf }

Первая часть проходит по всем jpg-файлам в C:\files, включая любые подкаталоги. Вторая часть берет каждый из этих файлов и перезаписывает его новым файлом.

Приведенные выше команды на самом деле только скажут вам, что они будут делать без этого, удалите -WhatIf, чтобы фактически выполнить операцию копирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .