sabsch
Goto Top

Batch Sortierung gerade und ungerade Bilder ändern

Hallo Zusammen,

hoffe ihr könnt mir weiterhelfen, kenne mich in diesem Gebiet leider kaum aus:

Früher hatten die Bilder folgende Struktur: 000001_2_1, 000002_2_1 usw
Diese muss ich aufteilen in gerade/ungerade, was ich mit diesem Batch gemacht habe:

@echo off & setlocal
set "evenfolder=Gerade"
set "oddfolder=Ungerade"
for /f "delims=" %%i in ('dir /a-d /b 000*.*') do for /f "delims=_." %%j in ("%%i") do for /f %%k in ('set /a "1%%j & 1"') do (
if %%k equ 0 (
move "%%i" "%evenfolder%\"
) else (
move "%%i" "%oddfolder%\"
)
)
PAUSE

Jetzt haben die Bilder folgende Struktur: Image_000001_2_1, Image_000002_2_1

Wie muss ich meinen Batch anpassen, damit dies weiterhin funktioniert?

Bitte um Hilfe! face-smile

Content-Key: 524220

Url: https://administrator.de/contentid/524220

Printed on: April 26, 2024 at 00:04 o'clock

Member: Bitboy
Bitboy Dec 11, 2019 at 08:32:44 (UTC)
Goto Top
Moin,

ich hab weder Ahnung von Batch noch einen guten Morgen Kaffee aber wenn ich das richtig seh hat sich nur der Dateiname geändert indem "Image_" vorne dran gehangen wurde.
Es müsste also wieder funktionieren wenn du in der for-Zeile den dir Befehl änderst.

for /f "delims=" %%i in ('dir /a-d /b Image_000*.*') do for /f "delims=_." %%j in ("%%i") do for /f %%k in ('set /a "1%%j & 1"') do (

Grüße
Member: SabSch
SabSch Dec 11, 2019 at 08:42:51 (UTC)
Goto Top
So hab ich es auch schon probiert - funktioniert leider nicht, ich bekomme folgende Fehlermeldung

snip
Mitglied: 142232
Solution 142232 Dec 11, 2019 updated at 08:45:51 (UTC)
Goto Top
Moin.
das entsprechende tokens=2 im zweiten for loop hinzufügen ...
@echo off & setlocal
set "evenfolder=Gerade"  
set "oddfolder=Ungerade"  
for /f "delims=" %%i in ('dir /a-d /b Image_000*.*') do for /f "tokens=2 delims=_." %%j in ("%%i") do for /f %%k in ('set /a "1%%j & 1"') do (   
	if %%k equ 0 (
		move "%%i" "%evenfolder%\"  
	) else (
		move "%%i" "%oddfolder%\"  
	)
)
PAUSE
See ya
Member: SabSch
SabSch Dec 11, 2019 at 09:06:31 (UTC)
Goto Top
Super, funktioniert!

Vielen, vielen Dank! face-smile
Member: SabSch
SabSch Dec 11, 2019 at 10:11:08 (UTC)
Goto Top
Ich bin's nochmal :/

Sobald die Zahl >99 ist (also 3 Stellen hat), wie zB Image_0000000291_1_1 erscheint bei mir eine Fehlermeldung (ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits)

Wie müsste ich meinen derzeitigen Batch anpassen, damit dieser auch damit umgehen kann?

@echo off & setlocal
set "evenfolder=Gerade"
set "oddfolder=Ungerade"
for /f "delims=" %%i in ('dir /a-d /b Image_000*.*') do for /f "tokens=2 delims=_." %%j in ("%%i") do for /f %%k in ('set /a "1%%j & 1"') do (
if %%k equ 0 (
move "%%i" "%evenfolder%\"
) else (
move "%%i" "%oddfolder%\"
)

)


PAUSE
Mitglied: 142232
142232 Dec 11, 2019 at 12:00:58 (UTC)
Goto Top
@echo off & setlocal enabledelayedexpansion
set "evenfolder=Gerade"  
set "oddfolder=Ungerade"  
for /f "delims=" %%i in ('dir /a-d /b Image_0*.*') do for /f "tokens=1,* delims=0_." %%j in ("%%i") do for /f "delims=_" %%a in ("%%k") do for /f %%l in ('set /a "1%%a & 1"') do (   
	if %%l equ 0 (
		move "%%i" "%evenfolder%\"  
	) else (
		move "%%i" "%oddfolder%\"  
	)
)
Member: SabSch
SabSch Dec 11, 2019 at 12:47:40 (UTC)
Goto Top
Vielen, vielen Dank! face-smile