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

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

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

Пользователь


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


Конфигурация

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


Доброго времени.
Помогите пожалуйста с такой задачей:
В папке есть множество файлов вида
Цитата:
filename.java
filename (1).java
filename (2).java
othername (3).txt
В качестве параметра для bat-файла указываю полный путь к нужному мне файлу (просто перетягиваю файл на батник)
И надо удалить пробел, скобки и их содержимое. Если файл с полученным именем существует, то просто перезаписать его
Цитата:
filename.java -> filename.java
filename (1).java -> filename.java
filename (2).java -> filename.java
othername (3).txt -> othername.txt
P.S.: сейчас ещё раз посмотрел список файлов. Изредка встречается, что перед скобкой 2 пробела. Они оба не нужны

Отправлено: 07:38, 28-09-2023

 

Аватара для NickM

Ветеран


Contributor


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

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


Попробуйте решить задачу с помощью использования метода replace на powershell, может оказаться гораздо проще, чем командный сценарий устаревшего командного интерпретатора.

Отправлено: 07:49, 28-09-2023 | #2



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

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


Ветеран


Contributor


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

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


Цитата vcrank:
В папке есть множество файлов вида »
Если скобки - это последнее, что есть перед расширением, то:
Код: Выделить весь код
@Echo Off
Cls
	If "%~1"=="" (Echo ??? file names must be specified in the script arguments! &Pause &Exit /B 2)
	For %%f In (%*) Do Call :MyRen "%%~f" "%%~nf" "%%~xf"
Pause
Exit /B 0

:MyRen
	Set "Name=%~2"
	Set "Name=%Name: (=(%"
	Set "Name=%Name: (=(%"
	Set "Name=%Name: (=(%"
	For /F "delims=(" %%s In ("%Name%") Do Set "Name=%~dp1%%s%~3"
	>nul Move /Y %1 "%Name%" 
Exit /B
Цитата vcrank:
(просто перетягиваю файл на батник) »
Можете выбрать несколько файлов за раз. Максимум не знаю.

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

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

Отправлено: 14:20, 28-09-2023 | #3


Пользователь


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

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


megaloman, спасибо. Отлично работает

Отправлено: 09:05, 29-09-2023 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - удалить первые 7 символов в имени файла ВиталийВ Скриптовые языки администрирования Windows 14 02-08-2024 01:29
CMD/BAT - удалить часть имени файла foto-d.k Скриптовые языки администрирования Windows 3 17-08-2018 20:15
Разное - Синтаксическая ошибка в имени файла, имени папки или метке тома Maestro Deno Microsoft Windows 7 8 05-03-2017 19:21
CMD/BAT - [решено] Сворачивание консольного окна, если в имени запускаемого файла есть скобки V!RTuE Скриптовые языки администрирования Windows 1 27-02-2015 19:28
Любой язык - [решено] Как открыть/удалить несколько файлов одного расширения без указания имени файла 9119 Скриптовые языки администрирования Windows 1 14-12-2012 15:42




 
Переход