o lote de janelas itera sobre arquivos renomeiam com 0 preenchimento

0

Eu tenho tentado fazer este pequeno roteiro. Basicamente quero perguntar ao usuário um nome e, em seguida, nesse diretório eu renomeio todos os pngs para name + number, onde o número é apenas um simples iterador de 3 dígitos (000,001,002,003, ..., 010, ... 999)

@echo off
setlocal EnableDelayedExpansion
set /P id=Enter name:
set /a i=0
for %%f in (*.png) do (
set "n=000000%i%"
set "pad=!n:~-3!"
ren %%f %id%!pad!.png
set /a "i+=1"
    )
PAUSE

por algum motivo, o iterador i é sempre 0, então apenas 1 arquivo é renomeado enquanto outros não são, pois eles teriam o mesmo nome.

eu pesquisei isso muito na webz, na verdade eu sabia (e ainda sei) muito pouco sobre isso, esse material é quase um frankenstein e geralmente código frankensteins não funciona: /

muito obrigado

    
por guestPersonDude 14.02.2015 / 03:04

1 resposta

1

Aqui está um script que encontrará todos os arquivos ausentes em uma sequência contínua:

@echo off
set count = 1208
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%f in (0,1,%count%) DO (
    set "num=00000%%f"    
    set "num=!num:~-4!"
    IF NOT EXIST img!num!.png (
        echo img!num!.png
    )
) 
endlocal

Observe dentro do loop que você precisa usar! x! em vez de% x% para obter uma variável local atrasada. Mas a própria variável de loop é sempre referida por %% x.

    
por 12.03.2016 / 09:11

Tags