PDA

Показать полную графическую версию : BAT.Переименование файла


alex1985khv
24-03-2016, 04:52
Добрый день. Есть папка, в ней лежит два файла - один с расширением .sgn.enc, другой CTF-*.*. Ежедневно в папке меняется файл CTF, может называться CTF-657, CTF-456 и т.д. Старые файлы CTF удаляются. Всегда один CTF файл и один файл .sgn.enc. Нужно, чтобы файл .sgn.enc менялся на CTF-*.sgn.enc, т.е. в зависимости от маски. Если, например, лежит файл CTF-656, то должно получиться CTF-656.sgn.enc. Как подставить маску в файл с расширением .sgn.enc?

Foreigner
24-03-2016, 07:27
for %%i in (ctf-*) do ren .sgn.enc %%i.sgn.en

alex1985khv
25-03-2016, 03:40
Foreigner, я так пробовал. Не работает. Если указать простую маску (переименовать 1.txt в 2.txt), то работает. А по моей маске нет...Не нравится .sgn.enc

Foreigner
25-03-2016, 07:27
я так пробовал. Не работает. » У меня работает:

@echo off

dir /b
for %%i in (ctf-*) do ren .sgn.enc %%i.sgn.enc
dir /b

https://s18.postimg.org/dm4pcuirt/ss.png (https://postimage.org/)

Iska
25-03-2016, 09:17
У меня работает: »
Подозреваю, что там не «.sgn.enc», а как-то иначе. Ну и до кучи — скажем, раз переименовали, а на следующий раз его уже нет.

alex1985khv, покажите перечень Ваших файлов.

alex1985khv
28-03-2016, 07:26
Iska, из-за доступа на работе прикрепить не могу. Сейчас в папке лежит всего два файла CTF-676.txt и .sgn.enc
Именно так называются. Не хочет переименовывать никак последний...Должно получиться CTF-676.sgn.enc

Foreigner
28-03-2016, 07:51
alex1985khv, И что у вас конкретно не получается? Положите батник в папку с файлами и запустите его. Кроме того, почему вы по ходу обсуждения меняете условия? Сначала говорилось о CTF-111 файлах, сейчас уже файлы получили расширение и стали CTF-111.txt

for %%i in (ctf-*) do ren .sgn.enc %%~ni.sgn.enc

alex1985khv
28-03-2016, 08:09
Foreigner, странно. Батник работает на XP, но моем рабочем ПК (7-ка) не работает.

Foreigner
28-03-2016, 08:12
alex1985khv, Может на вашем рабочем какие-то ограничения? Свяжитесь с админом.




© OSzone.net 2001-2012