1

Тема: CMD/BAT: Пакетное переименование файлов

Есть на диске папка D:\papka\other в которой находится ~10000 файлов с разными именами, но одинаковым расширением *.vir, как с помощью bat переименовать их к виду: 0001.exe, 0002.exe и т.д. с возможностью запуска bat из любого места ПК. Конечно можно было обойтись сторонними программами, но ставить дополнительный софт ради всего лишь переименования не хотелось бы.

2 (изменено: Rumata, 2014-09-23 15:17:48)

Re: CMD/BAT: Пакетное переименование файлов

ren *.vir *.exe

Или более сложный вариант для приведения к виду NNNN.exe, где NNNN - числа вида 0001, 0002, ...


@echo off

setlocal enabledelayedexpansion

set /a "I=0"

for %%f in ( *.vir ) do (
    set /a "I+=1"
    set "N=0000!I!"
    set "N=!N:~-4!"
    ren "%%~f" "!N!.exe"
)

endlocal
( 2 * b ) || ! ( 2 * b )

3 (изменено: Ремер, 2014-09-23 15:57:41)

Re: CMD/BAT: Пакетное переименование файлов

За сложный вариант огромное спасибо, но чтобы он отработал его надо запускать непосредственно в этой папке.  Как снять это ограничение, чтобы запуск можно было производить с любого места на диске?

4

Re: CMD/BAT: Пакетное переименование файлов

За сложный вариант огромное спасибо, но чтобы он отработал его надо запускать непосредственно в этой папке.  Как снять это ограничение, чтобы запуск можно было производить с любого места на диске?

Добавить после «setlocal enabledelayedexpansion» «pushd "D:\papka\other"» и «popd» — перед «endlocal».