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

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

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

Ветеран


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

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


Здравствуйте. Можно ли как-то переименовать конечные символы заданных файлов (заранее пути к файлам пропишем в бате), на заданные символы по ходу скрипта. По ходу скрипта - это значит что мы будем задавать символы (на которые мы будем заменять конечные) в момент работы скрипта. (т.е. запускается бат, и пишет.. введите символы.. мы вводим, нажимаем ентер и далее происходит переименование).

В файлы без расширения. Как узнать, какие конечные символы нужно переименовать?.. в батнике мы будем прописывать пути к файлам.. но имя файла будем прописывать не полностью, а маской (мы не будем дописывать конечные символы, которые нужно заменять).

пример... есть 3 файла:

1 - "C:\hello world - 15"
2 - "C:\windows 3 - 12"
3 - "C:\guten tag 2 - OFF"

В батнике мы пропишем такие пути:
1 - "C:\hello world - "
2 - "C:\windows 3 - "
3 - "C:\guten tag 2 - "

Запускаем батник.......
он нам говорит, "Введите символы..."
мы пишем "ON"
нажимаем ентер
батник переименовывает файлы, и их имена становятся такими:

1 - "C:\hello world - ON"
2 - "C:\windows 3 - ON"
3 - "C:\guten tag 2 - ON"


Отправлено: 11:36, 07-04-2018

 

Ветеран


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

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


Alexander_88, какую общую задачу Вы пытаетесь решить этой и предыдущей: CMD/BAT - [решено] Уменьшить число в имени файла темами? Пока я вижу только одно: любой вменяемый файловый менеджер позволит решить эту задачу ручками проще.

Отправлено: 15:00, 07-04-2018 | #2



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

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


Ветеран


Contributor


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

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


Если очень хочется, то извольте:
Код: Выделить весь код
@Echo Off

Set "BoxIn=Z:\Box_In"
Set Mask="guten tag 2 - *." "guten tag kuku 2 - *.exe" "hello world - *." "hello world - *.txt" "windows 3 - *." "windows kuku 3 - *.uuu"  

:Begin
	Set "NewEnd="
	SET /P NewEnd=Input new ending simbols :
	If "%NewEnd%"=="" GoTo :Eof
	Call :FileRen "%NewEnd%" "%BoxIn%" %Mask%
	rem GoTo :Begin
GoTo :Eof

:FileRen
	:BeginRen
	If "%~3"=="" GoTo :Eof
	FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~n3') DO Set "OldName=%%f"
	FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~3') DO Set "OldName=%%f"
	FOR %%f IN ("%~2\%~3") DO Ren "%%f" "%OldName%%~1%%~xf"
	Shift /3
	GoTo :BeginRen
GoTo :Eof
Маски файлов могут быть с расширениями. Имена файлов без расширения должны завершаться точкой.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 07-04-2018 в 20:36.

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

Отправлено: 16:39, 07-04-2018 | #3


Ветеран


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

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


Iska, есть скрипт который работает постоянно, ориентируется на имена многих файлов. По 1ой теме.. он запускает эти батники для уменьшения лимита задач (которые он выполняет), как только число будет 0, задача перестанет выполняться.

Вторая тема - это батники (их много будет), которые будут назначать или вообще отключать эти лимиты для одной задачи, или для целой группы.. Я сделаю форму с кнопками (через Делфи). Каждая кнопка, будет относится к одной или группе задач. На каждую кнопку назначу батник из этой темы. Нажму на кнопку определенной задачи.. запустится батник, спросит лимит, я написал и нажал энтер. Это гораздо быстрее (щёлкнуть по кнопке, написать лимит и нажать энтер) чем через файловый менеджер. Тем более это нужно делать часто. Одноразовое групповое переименование, даже для очень многих файлов (одноразовое) я делаю в файловый менеджер Total Commander.

Отправлено: 19:15, 07-04-2018 | #4


Ветеран


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

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


Вложения
Тип файла: txt test.txt
(529 байт, 4 просмотров)

megaloman, Благодарю вас. Я попробовал, у меня получается, что батник не переименовывает конечные символы на заданные., а добавляет заданные символы в конец имени.
были файлы:
"OK LIKES - 0"
"ok yandex 2 - 0"
"start google - 0"

Input new ending simbols: 2

файлы получились:
"OK LIKES - 02"
"ok yandex 2 - 02"
"start google - 02"

еще раз запустил..

Input new ending simbols: off

файлы получились:
"OK LIKES - 02off"
"ok yandex 2 - 02off"
"start google - 02off"

Отправлено: 19:36, 07-04-2018 | #5


Ветеран


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

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


megaloman, тхт прикрепил. Указываю со звездочками в конце, "OK LIKES - *."

Отправлено: 19:45, 07-04-2018 | #6


Ветеран


Contributor


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

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


Фантастика, из одной папки у меня батник работал, а из другой - не хочет. Не стал докапываться, вот исправление
Код: Выделить весь код
	FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~n3') DO Set "OldName=%%f"
	FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~3') DO Set "OldName=%%f"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 20:35, 07-04-2018 | #7


Ветеран


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

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


Цитата megaloman:
Фантастика, из одной папки у меня батник работал, а из другой - не хочет. Не стал докапываться, вот исправление
Код: Выделить весь код
FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~n3') DO Set "OldName=%%f"
FOR /F "usebackq tokens=1 delims=*" %%f IN ('%~3') DO Set "OldName=%%f" »

Благодарю вас, теперь у меня все работает (у меня все файлы на рабочем столе)

Отправлено: 20:42, 07-04-2018 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Не удаётся переименовать папку. Якобы используются недопустимые символы. Макс Фолдер Microsoft Windows 7 3 13-03-2016 20:59
Не открываются файлы с ходу во время загрузки файлов из браузера Dr. Comp Хочу все знать 2 11-12-2013 19:16
CMD/BAT - [решено] Перемещение файлов по списку в заданные директории 929151 Скриптовые языки администрирования Windows 4 16-11-2012 01:56
CMD/BAT - [решено] Существует ли возможность взаимодействия с пользователем по ходу выполнения скрипта? RUVATA Скриптовые языки администрирования Windows 15 05-08-2010 15:22




 
Переход