Удалить в имени файла скобки
Доброго времени.
Помогите пожалуйста с такой задачей:
В папке есть множество файлов вида
Цитата:
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 пробела. Они оба не нужны
|
Попробуйте решить задачу с помощью использования метода replace на powershell, может оказаться гораздо проще, чем командный сценарий устаревшего командного интерпретатора.
|
Цитата:
Цитата 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
(просто перетягиваю файл на батник) »
|
Можете выбрать несколько файлов за раз. Максимум не знаю.
|
megaloman, спасибо. Отлично работает
|
Время: 11:37.
© OSzone.net 2001-