У меня есть группа из примерно 3000 папок с именем XYZ-1 до XYZ-3000. Внутри этих папок находятся группы файлов изображений и текстовый файл описания. Такие, как:Как переименовать папку так же, как имя файла первого файла внутри этой папки, используя пакетное программирование Windows?
- Property123_0001.jpg
- Property123_0002.jpg
- Property123_0003.jpg
- ...
- Property123_0085.jpg
- Property123_0086.jpg
- Z_Description.txt
Количество файлов .jpg
отличается в каждой папке, но всегда есть один файл описания. Файлы изображений каждого каталога имеют другое имя, например, `XYZ-1 может содержать свойство123, а XYZ-10 может содержать Easement789.
Мне нужно переименовать папки, содержащие файлы, после «Property123» части файлов .jpg. В идеале я бы урезал конечные цифры и подчеркивание, но даже если бы они остались, это было бы лучше, чем имена XYZ-1.
Я работаю над пакетным файлом, чтобы сделать это, но мой не запускается, и я не могу понять, почему.
Вот что у меня есть:
for /d %%D in (*) do (
set "_dir=%%D"
set /a "_first=1"
cd "%%D"
for %%F in (*) do (
if %_first%==1 set "_name=%%~nF"
set /a "_first=0"
)
cd ..
ren %_dir% %_name%
)
К сожалению, когда я запускаю его, окно командной строки просто закрывается немедленно. Я попытался положить команду паузы в конце, но это не закрыло окно. Ничего не происходит с файлами/папками.
Я пробовал свой синтаксис из командной строки, и все выглядит нормально. Поэтому я не знаю, в чем проблема. Могу ли я немного помочь, пожалуйста?
Какие числовые цифры вы говорите по поводу усечения: те, после '_', или же те, до (' 123' в списке файлов образца)? – aschipfl