1

Тема: CMD/BAT: замена символов в именах файлов

Привет всем!
Весь день мучаюсь, так ничего и не вышло.
ЗАДАЧА: в директории лежат несколько папок с MP3 файлами. В именах файлов вместо скобок идут символы "(" - %28 , ")" - %29. Нужен bat-ник, который заменит эти встречающиеся комбинации цифр на соответствующие скобки

Заранее спасибо

2

Re: CMD/BAT: замена символов в именах файлов

Это проще сделать на JScript с помощью функции unescape.

Забыл пароль и потерял e-mail.

3 (изменено: shiz, 2012-05-11 03:23:41)

Re: CMD/BAT: замена символов в именах файлов

Например
(пути к обрабатываемым каталогам - аргументами командной строки):

var FSO = new ActiveXObject("Scripting.FileSystemObject");
var Args = WScript.Arguments;
for (var i = 0; i < Args.length; i++) {
  var FilesEnum;
  try {
    var DirPath = Args.item(i);
    FilesEnum = new Enumerator(FSO.GetFolder(DirPath).Files);
  } catch (Err) {
    WScript.Echo(
      "Каталог: " + DirPath + "\n" +
      Err.name + " " + Err.number + ": " + Err.message
    );
    FilesEnum = new Enumerator();
  }
  for (; !FilesEnum.atEnd(); FilesEnum.moveNext()) {
    var File = FilesEnum.item();
    var Name = File.Name, NewName = unescape(Name);
    try {
      if (NewName != Name) File.Name = NewName;
    } catch (Err) {
      WScript.Echo(
       "Каталог: " + DirPath + "\n" +
       "Переименование: " + Name + "->" + NewName +"\n" +
        Err.name + " " + Err.number + ": " + Err.message
      );
    }    
  }
}

OFF: Как-то вразнобой раскрашиваются для JS идентификаторы: и чёрные, и синие, и сиреневые.

Забыл пароль и потерял e-mail.

4

Re: CMD/BAT: замена символов в именах файлов

Огромное спасибо ) Но дело в том, что просто я для себя хочу разобраться именно с .bat файлами

5 (изменено: shiz, 2019-11-07 19:04:34)

Re: CMD/BAT: замена символов в именах файлов

Как-то так (не проверял):

@echo off
setlocal enableextensions enabledelayedexpansion
LoopArgs:
if [%1]==[] endlocal & exit /b
pushd %1
for %%I in (*.*) do (
  set Name=%%I
  set Name=!Name:%%28=(!
  set Name=!Name:%%29=)!
  if not %%I==!Name! rename %%I !Name!
)
popd
shift
goto LoopArgs

Руководство форума  прошу обратить внимание на тот же код при включенной расцветке :

Забыл пароль и потерял e-mail.

6

Re: CMD/BAT: замена символов в именах файлов

во - спасибо огромное! поразбираюсь )