Dodaj 1 znak na początku każdej nazwy pliku

2

Chcę umieścić 1 znak na początku każdej nazwy pliku jpg. Zrobiłem ten plik wsadowy:

for %%A in (*.jpg) do ren "%%~A" s"%%~nA%%~xA"

Działa to prawie idealnie, ale pierwszy plik jest przetwarzany dwukrotnie:

ssNL201501
sNL201502
sNL201503

Co robię źle?

janklaas
źródło

Odpowiedzi:

3

Działa to prawie idealnie, ale pierwszy plik jest przetwarzany dwukrotnie

for %%A in (*.jpg) do ren "%%~A" s"%%~nA%%~xA"

Musisz użyć:

for /f %%A in ('dir /b *.jpg') do ren "%%~A" s"%%~nA%%~xA"

Jak wyjaśnia dbenham w swojej odpowiedzi, aby dodać „tekst” na końcu wielu nazw plików :

Pamiętaj, że korzystanie z niego jest bardzo ważne, FOR /Fa nie proste FOR. FOR /FGromadzi całą wynik DIRpolecenia przed rozpoczęciem iteracji, natomiast prosta FORzaczyna iteracji po bufor wewnętrzny jest pełny, który dodaje ryzyko zmiany nazwy tego samego pliku wielokrotnie.


Dalsza lektura

DavidPostill
źródło