Доброго времени.
Помогите пожалуйста с такой задачей:
В папке есть множество файлов вида
Цитата:
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 пробела. Они оба не нужны
CMD/BAT - [решено] Удалить в имени файла скобки
-
megaloman
Re: CMD/BAT - [решено] Удалить в имени файла скобки
Попробуйте решить задачу с помощью использования метода replace на powershell, может оказаться гораздо проще, чем командный сценарий устаревшего командного интерпретатора.
-
megaloman
Re: CMD/BAT - [решено] Удалить в имени файла скобки
Цитата vcrank:
В папке есть множество файлов вида
Если скобки - это последнее, что есть перед расширением, то:
Код:
Цитата vcrank:
(просто перетягиваю файл на батник)
Можете выбрать несколько файлов за раз. Максимум не знаю.
В папке есть множество файлов вида
CMD/BAT - [решено] Удалить в имени файла скобки
Если скобки - это последнее, что есть перед расширением, то:
Код:
Код: Выделить всё
@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:
(просто перетягиваю файл на батник)
CMD/BAT - [решено] Удалить в имени файла скобки
Можете выбрать несколько файлов за раз. Максимум не знаю.
-
vcrank