![]() |
Пакетное переименование файлов по имени папки на уровень выше
Всем добрый день, использую bat для некоторой оптимизации рабочего процесса, очень выручает! Много решений нашла на данном форуме, но сама, к сожалению не пишу, сейчас появилась потребность в батнике, который переименовывает файлы по имени главной папки, т.е.
у нас есть главная папка "12345" (таких, в ней лежит 3 папки с разными названиями (мама, папа, дочь), в них лежат файлы p4154_1.png, p4154_2.png, p4154_3.png и тд (имена файлов могут быть разной длины, но у всех есть счетчик _1, _2 и тд), также в главной папке рядом с подпапками есть файлы .psd, которые названы p4154_мама.psd, p4154_папа.psd, p4154_дочь.psd. 12345 ->p4154_мама.psd ->p4154_папа.psd ->p4154_дочь.psd ->мама -->p4154_1.png -->p4154_2.png -->p4154_3.png ->папа -->p4154_1.png -->p4154_2.png -->p4154_3.png ->дочь -->p4154_1.png -->p4154_2.png -->p4154_3.png Необходим bat, который я буду класть в главную папку, он будет брать название этой главной папки (она всегда находится на уровень выше файлов расположенных в ней) и менять название каждого файла .png и .psd на название главной папки, при этом всё что после нижнего подчеркивания (включая и его) должно сохраниться, т.е. на выходе будет 12345 ->12345_мама.psd ->12345_папа.psd ->12345_дочь.psd ->мама -->12345_1.png -->12345_2.png -->12345_3.png ->папа -->12345_1.png -->12345_2.png -->12345_3.png ->дочь -->12345_1.png -->12345_2.png -->12345_3.png Надеюсь понятно объяснила, если что извините, я впервые прошу помощи, просто ничего похожего не смогла найти ((( Буду очень благодарна за помощь! |
Powershell
Код:
$folder = $PSScriptRoot -replace '.*\\' После проверки корректности переименований (код изначально только выводит информацию) уберите из кода -WhatIf и pause |
Цитата:
|
Время: 23:56. |
Время: 23:56.
© OSzone.net 2001-