Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] переименование по индексу (http://forum.oszone.net/showthread.php?t=313930)

icq99999999 16-04-2016 14:42 2626823

переименование по индексу
 
есть скрипт на паскале для переименования по индексу:
Код:

var
  I: Integer;

begin
  I := I + 1;
  FileName := IntToStr(I);
end.

как сделать то же самое в bat?

вот мой код , но он работает не очень :
Код:

Dir C:\Users\user\Desktop\JJ /a:-d /b /o:n > Sort_files.txt
For /F "usebackq tokens=* delims=" %%i In ("Sort_files.txt") do (       
        ECHO %%i
        rem for /l %%1 in (1,1,25) do ren "%folder%\%%i" "%%1.jpg"
        )
)


Iska 16-04-2016 15:20 2626835

Примерно так (не проверялось):
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set /a iCount = 0

pushd "%UserProfile%\Desktop\JJ" && (
        for /f "usebackq delims=" %%i in (
                `2^>nul dir /b /a:-d /o:n "*.*"`
        ) do (
                set /a iCount += 1
                ren "%%~i" "!iCount!.%%~xi"
        )
        popd
)

endlocal
exit /b 0


На самом деле этот код не вполне корректен при определённых условиях. Если исходные имена файлов будут выглядеть как «1.ext», «2.ext» и т.п. — может получиться ситуация, что мы пытаемся дать файлу имя уже существующего файла. Потому правильный путь заключается в переименовании с одновременным перемещением во временную папку, а затем перемещением сразу всех переименованных файлов обратно (либо наоборот — сначала перемещение во временную папку. затем переименование файла с одновременным возвратом в исходную папку).

icq99999999 16-04-2016 17:01 2626866

Вложений: 1
код работает, но почему-то файлы не по порядку.

Foreigner 16-04-2016 17:50 2626885

icq99999999, Это последствия сортировки. В вашем случае надо брать значения из скобок:
Код:

@echo off
for /f "tokens=1,2 delims=()" %%i in ('dir /b') do 2>nul ren "%%i(%%j)" "%%j.jpg"


Iska 16-04-2016 17:58 2626888

Цитата:

Цитата icq99999999
но почему-то файлы не по порядку. »

Именно что строго по порядку.

P.S. Освойте «Alt-PrintScreen».


Время: 14:57.

Время: 14:57.
© OSzone.net 2001-