Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Counter wird in der For Schleife nicht erhöht

Frage Entwicklung Batch & Shell

Mitglied: Grober

Grober (Level 1) - Jetzt verbinden

09.08.2007, aktualisiert 14:30 Uhr, 3770 Aufrufe, 3 Kommentare

Ich versuche mich schon seit gestern an einem Skript, was Bilder in einem Ordner umbenennt und am Ende des neuen Dateinamens eine größer werdende Zahl anhängt. Funktioniert eigentlich auch alles, bis auf die Erhöhung des größer werdenden Zahl. Die bleibt imm er gleich aus irgendeinem Grund.

So sieht das Skript bis jetzt aus.


@ECHO OFF

dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt
set /A i=1
prompt %h
echo %h
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO (
rename "%%g" "4-3-2_%i%.jpg"
set /A i=%i%+1
)

Ich hoffe, dass irgendjemand mir bei diesem Problem helfen kann



Stephan
Mitglied: Biber
09.08.2007 um 06:56 Uhr
Moin Grober,

willkommen im Forum.

Für Dein Problem gibt es hier im Forum schon ein paar Erklärungen.
Befrage bitte die Forumssuchfunktion mal nach "verzögerter Variablenauflösung" oder neudeutsch "DelayedExpansion".
Eigentlich vollständig angesprochen ist es auch in der eingebauten Hilfe zur FOR-Anweisung ("FOR /?") am CMD-Prompt.

Grundsätzlich zwei praktikable Lösungsstrategien:
  • mit geCALLtem Block innerhalb der Batchdatei
01.
@ECHO OFF & setlocal 
02.
dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt 
03.
set /A i=1 
04.
prompt %h 
05.
echo %h 
06.
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO call :RenameBlock "%%g" 
07.
goto :eof 
08.
:: das "goto :eof" in der Vorzeile ist das Ende des Batches 
09.
:RenameBlock Parameter 1 ist das %%g aus der FOR /F-Anweisung 
10.
rename %1 "4-3-2_%i%.jpg" 
11.
set /A i=%i%+1 
12.
goto :eof 
13.
::Das "goto :eof" in der Vorzeile ist das Ende des Blocks ":RenameBlock"
  • mit DelayedExpansion
01.
@ECHO OFF % EnableDelayedExpansion 
02.
dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt 
03.
set /A i=1 
04.
prompt %h 
05.
echo %h 
06.
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO ( 
07.
rename "%%g" "4-3-2_!i!.jpg" 
08.
set /A i=!i!+1 
09.
)
[Beides ungetestete Skizzen]

Grüße
Biber
Bitte warten ..
Mitglied: Dynadrate
09.08.2007 um 08:39 Uhr
Nebenbei, für diesen Zweck gibts bei XP auch ne eingebaute Funnktion: Bilder markieren, oberstes anklicken und so benennen: %BildName%(%LfdNr%) (ggf.".jpg")
Bitte warten ..
Mitglied: Grober
09.08.2007 um 14:30 Uhr
Moin,

also das erste Skript funktioniert wunderbar. Danke für die Hilfe

Stephan
Bitte warten ..
Ähnliche Inhalte
Windows Tools
gelöst Performance Counter weg (2)

Frage von emeriks zum Thema Windows Tools ...

Exchange Server
Exchange 2016 CU6 Fehler 1006 (Performance Counter) (5)

Frage von chrishoffi zum Thema Exchange Server ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
gelöst Fehler in Schleife (2)

Frage von miczar zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...