Я хочу переименовать файлы с помощью пакетной команды и записать исходные и переименованные файлы в список, чтобы обеспечить перекрестную ссылку (создание DIR /OS >file как до, так и после пакетного файла не является достаточно строгим).

Файл ниже хорошо выполняет переименование, но, насколько я понимаю, он недостаточно хорош, чтобы заставить работать выходной бит (если это вообще возможно). Кроме того, вывод в приведенном ниже примере отличается в зависимости от того, является ли вывод в файл или экран.

Я хочу быть в состоянии понять больше этого:

@echo off
set /a c=%1
setLocal ENABLEDELAYEDEXPANSION
For %%G in (*.tif) do (
    echo %%G >infile.txt
    ren %%G abc.!c!.tif
    set /a c=c+1
    echo %%G >outfile.txt
)
endlocal

1 ответ1

0

Спав над этим, я нашел ответ на проблему. Мне нужно только написать имя файла, который должен быть переименован, так как я «знаю», как я это называю! Очевидно в конце.

set /a c=%1
set param=%2
setLocal ENABLEDELAYEDEXPANSION
FOR  %%i in (*.tif) do (
        echo %%i >>in.txt
        ren %%i %param%!c!.tif
        echo %param%!c!.tif >>out.txt
        set /a c=c+1
)
endlocal

Все, что мне нужно сейчас сделать, - это поставить тест, чтобы он переименовал первый переименованный файл (это может произойти в зависимости от числа, используемого в var 'c', и оригинальных имен файлов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .