Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переместить файлы с определённым расширением и переименовывание при совпадении имени

Ответить
Настройки темы
CMD/BAT - [решено] Переместить файлы с определённым расширением и переименовывание при совпадении имени

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброе утро. Помогите с батником.
Нужно чтобы он перемещал, допустим, картинки с расширением jpg из одной папки в другую и при совпадении имён чтобы происходило переименования по типу 01, 02, ну или другим способом, главное чтоб оригинальное название файла не менялось.
Нашёл вот такую команду, но при совпадении имени он спрашивает стоит ли заменить.

Код: Выделить весь код
MOVE /-Y D:\test\*.jpg* D:\pictures

Отправлено: 10:14, 15-12-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6671
Благодарности: 1556

Профиль | Отправить PM | Цитировать


Powershell
Код: Выделить весь код
$files = dir "D:\test\*.jpg"
$to = "D:\pictures"

$t = (get-date).ToString("yyyyMMddHHmmss")
$files |% {
    if (Test-Path "$to\$($_.name)") {
        mv $_ "$to\$($_.basename)-$t$($_.extension)" -WhatIf
    }
    else {
        mv $_ $to -WhatIf
    }
}
Уберите из кода -Whatif, чтобы реально переносило.

Непонятно, какой файл надо переименовывать - тот, который переносится или тот, который лежит в конечном каталоге и совпадает по имени с переносимым.
Выше вариант с переименованием того, который переносится.

Вариант с переименованием тех, которые лежат в конечном каталоге:
Код: Выделить весь код
$files = dir "D:\test\*.jpg"
$to = "D:\pictures"

$files |% {
    $destFile = get-item "$to\$($_.name)" -ErrorAction SilentlyContinue
    if ($destFile) {
        Rename-Item $destFile.fullname "$($destFile.basename)-$($destFile.lastwritetime.tostring("yyyyMMddHHmmss"))$($destFile.extension)" -WhatIf
    }
    mv $_ $to -WhatIf
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 15-12-2022 в 11:41.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:26, 15-12-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Уберите из кода -Whatif, чтобы реально переносило. »
Спасибо! Всё работает. Вот только через PowerShell, не знаете как запустить с помощью батника .ps1?

И ещё, можно ли чтобы к наименованию файлов добавлялись просто цифры 1,2 и тд вместо даты? Неважно какой файл будет переименовываться, переносимый или тот, который в конечном каталоге.

Отправлено: 11:59, 15-12-2022 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6671
Благодарности: 1556

Профиль | Отправить PM | Цитировать


Удобнее по ярлыку
Код: Выделить весь код
powershell -f "C:\путь\к\скрипту\script.ps1"
Цитата onximinolog:
1,2 и тд вместо даты »
Представим ситуацию: в конечной папке есть не только файл 1.txt, но и 1-1.txt.
Скрипт проверяет, что 1.txt уже есть, и перезаписывает 1-1.txt.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:07, 15-12-2022 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переместить файлы с определённым расширением и переименовывание при совпадении имени

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужно переместить файлы по определённым условиям и заархивировать Alexa_ Скриптовые языки администрирования Windows 14 23-06-2022 18:05
CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки vlz47 Скриптовые языки администрирования Windows 2 07-02-2018 22:04
CMD/BAT - Сканирование папки на файлы с определённым расширением IDROID Скриптовые языки администрирования Windows 8 29-04-2016 13:16
CMD/BAT - [решено] Переместить файлы, в имени которых больше трех цифр. hazardhz Скриптовые языки администрирования Windows 5 14-05-2011 12:32
Интерфейс - Переименовать файлы при совпадении Папуас Скриптовые языки администрирования Windows 2 19-10-2010 23:56




 
Переход