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

Hochzählen einer Variable funktioniert ab 08 nicht mehr

Frage Entwicklung Batch & Shell

Mitglied: bufferm44

bufferm44 (Level 1) - Jetzt verbinden

27.08.2008, aktualisiert 19:30 Uhr, 4252 Aufrufe, 2 Kommentare

Hi zusammen!

Ich habe etwas wirklich merkwürdiges:

Man erstelle eine Datei c:\tag.txt mit dem Inhalt 01.

Mal führe folgendes Script 7x aus, aber beim 8. Mal macht er aus der 08 keine 09 sondern eine 01. Ich versetehe es nicht...

01.
set /p tag=<"C:\tag.txt" 
02.
echo eingelesener tag ist %tag% 
03.
set /a tag+=1 
04.
echo tag plus eins ist %tag% 
05.
for /L %%i IN (1 1 9) do ( 
06.
if "%tag%"=="%%i" set tag=0%%i 
07.
if "%tag%"=="0%%i" goto :tagend 
08.
09.
:tagend 
10.
echo %tag%> C:\tag.txt 
11.
echo %tag% in datei geschrieben 
12.
pause
Weiß jemand Rat?
Mitglied: bastla
27.08.2008 um 17:43 Uhr
Hallo bufferm44!

Das ist eine der lästigen Kleinigkeiten, mit denen die CMD-Shell so aufwarten kann ...

Eine Zahl, die mit "0" beginnt, wird als Oktalzahl interpretiert - von "00" bis "07" macht das natürlich keinen Unterschied, aber mangels Ziffer "8" im Oktalsystem stellt natürlich "08" keine gültige Zahl mehr dar.

Da der "set /a" Befehl aber auf Teufel komm raus eine Zahl erzeugen will, nimmt er soviel, wie noch "in Ordnung" ist - also nur die führende "0" - und addiert dann 1.

Ein Workaround (als Ersatz der Zeile 3) könnte so aussehen:
01.
set "tag=1%tag%" 
02.
set /a tag+=1 
03.
set "tag=%tag:~-2%"
Damit hast Du dann das Formatierungsproblem auch gleich gelöst ...

Grüße
bastla
Bitte warten ..
Mitglied: bufferm44
27.08.2008 um 19:30 Uhr
Zitat von bastla:
> Das ist eine der lästigen Kleinigkeiten, mit denen die CMD-Shell
so aufwarten kann ...

Oh, oh, oh, das erinnert mich irgendwie an die "enabledelayedexpansion"-Geschichte, man probiert Stunden herum und sucht den "Fehler"..

Vielen Dank!! Auch für die Formatierung!

Grüße

Tobi
Bitte warten ..
Ähnliche Inhalte
Windows 10
gelöst Get disk info von WBADMIN funktioniert nicht unter Windows 10 (4)

Frage von RichardK zum Thema Windows 10 ...

Router & Routing
Portforwarding funktioniert teilweise (5)

Frage von mcallister001 zum Thema Router & Routing ...

Netzwerkmanagement
gelöst OpenVPN Verbindung funktioniert. LAN dahinter ist nicht erreichbar (5)

Frage von istike2 zum Thema Netzwerkmanagement ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

Server-Hardware
gelöst SPP von HP Abwärtskompatibel? (14)

Frage von fireskyer zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...