Top-Themen

Aktuelle Themen (A bis Z)

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 Batch setlocal enabledelayedextension scheint nicht zu funktionieren

Mitglied: JKoenig

JKoenig (Level 1) - Jetzt verbinden

18.01.2012, aktualisiert 19:05 Uhr, 3272 Aufrufe, 4 Kommentare

Hallo und einen schönen Abend wünsche ich

ich bringe mir im moment etwas über PHP und MySQL bei und leider bleibe ich bei einer Batchdatei, welche mir ein Skript generieren soll um mir das manuelle Eintragen von ca 1000 Werten eine Datenbank abzunehmen.

Die Batchdatei funktioniert soweit, bis auf die Tatsache das die Variable %i% nicht in der Schleife inkrementiert wird.

Den Wert lasse ich mir während der Schleife und am Ende ausgeben, die Ausgabe sind jede Menge Nullen und am Ende eine 927 (Anzahl der Zeilen in der Datei)
01.
@echo off 
02.
setlocal enabledelayedextension 
03.
echo INSERT INTO `tb_class` (`ID`, `Name`, `InheritanceID`, `Desc`) VALUES>mcp.sql 
04.
set /a i=0 
05.
echo %i% 
06.
for /F %%A in (_classes.txt) do ( 
07.
	set /a i += 1 
08.
	echo %i% 
09.
	echo ^(%i%, '%%A', 0, ''^),>>mcp.sql 
10.
11.
echo %i% 
12.
pause
Kann mir jemand sagen wo genau da mein Fehler ist?

[Edit Biber] Codeformatierung [/Edit]
Mitglied: Biber
18.01.2012 um 19:31 Uhr
Moin JKoenig,

du hast zwar in der Zeile 02 mit setlocal enabledelayedextension etwas angekündigt, nämlich die Verzögerte Variablenaufdröselung.
Aber du hat an keiner Stelle die konkreten Lös-Mir-Verzögert-Auf-Signale bei einer Variable verwendet.
Verzögert aufgelöst werden soll doch die Variable %i%
---> diese muss dann in Zeile 08 und 09 als !i! geschrieben werden. (Ausrufezeichen statt Prozentzeichen).

Außerdem hast du per Zufall mal die Redmonder PraktikantInnen beim Qualitätscoden erwischt.

Dein unabsichtlicher Tippfehler "setlocal EnableDelayedExtension" statt richtig "setlocal EnableDelayedExpansion" bleibt vollkommen ohne sichtbare Fehlermeldung.

Eine kurzfristig durchgeführter Biberscher Qualitätscheck ergab
d:\temp>setlocal enabledelayedextension 
 
d:\temp>setlocal WhateverYouWutt 
 
d:\temp>setlocal WhateverYouWutt && echo Alles Prima 
Alles Prima
--> Weder das eventuell vorstellbare Kauderwelsch "enabledelayedextension" noch das zweite Beispiel für ein unbekanntes Schlüsselwort bringen eine Fehlermeldung.
Wie in der letzten Zeile gezeigt nicht mal einen ERRORLEVEL-Wert für Fehler.
*kopfschüttel* Redmonder Coder sind schon was spezielles...

Grüße
Biber
Bitte warten ..
Mitglied: JKoenig
18.01.2012 um 20:03 Uhr
Ok funktioniert jetzt

Mal wieder zwei Dinge gelernt,
1. !var! statt %var% bei delayedexPansion verwenden
2. auch Profies machen Fehler

Grüße

JKoenig
Bitte warten ..
Mitglied: pieh-ejdsch
18.01.2012 um 20:24 Uhr
moin Biber,

du hast zwar in der Zeile 02 mit setlocal enabledelayedextension etwas angekündigt, nämlich die Verzögerte Variablenaufdröselung.
Der ist gut.

Setlocal und rem sind aber die Blinden Kandidaten im CMD-Fenster, etwa so wie: echo(nix >nul
01.
>echo setlocal enabledelayedextensions >ab.cmd &&ab ||echo Fehler! &del ab.cmd 
02.
 
03.
>setlocal enabledelayedextensions 
04.
Ungültiger Parameter für den SETLOCAL-Befehl. 
05.
Fehler!
Hoffentlich kommt Timo net mit der @ECHO OFF Keule vorbeigeschwungen.

Gruß Phil
Bitte warten ..
Mitglied: Biber
18.01.2012 um 20:56 Uhr
Moin Phil,

hast ja recht... vielleicht sollte ich meine proofs of concept am CMD-Prompt nicht ausgerechnet auf den SETLOCAL-Befehl ausweiten.

Aber ehrlich... wenn ich so nebeneinanderhalte einerseits den Hilfetext von SETLOCAL...
.... 
Der SETLOCAL-Befehl legt einen ERRORLEVEL-Wert fest, wenn ein Argument 
angegeben wird. Dieser ist 0, wenn eines der beiden gültigen 
Argumente angegeben wird, und andernfalls 1. 
.....
... und andererseits das Mir-doch-egal-Verhalten des SETLOCAL-Aufrufs in meinen Beispielen im letzten Kommentar...
-> Da musst du aber schon SEHR genau zwischen den Zeilen in der Doku lesen, um es so zu erwarten.

Aber vermutlich hatten die Jungs & Mädels auch Unterstützung von mehreren Volljuristen bei der Formulierung der Hilfetexte.

Danke dir für die Richtigstellung.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch, die auch als Benutzer funktionieren soll

gelöst Frage von lordofremixesBatch & Shell33 Kommentare

Hallo zusammen, ich habe ein paar autarke Windows 7 Kisten, die folgende Batch / Exe im Autostart ausführen sollen: ...

LAN, WAN, Wireless

LACP-Trunking 2x 1GBit scheint nicht zu funktionieren (1GBit wird nicht überschritten)

gelöst Frage von HtHNightwolfLAN, WAN, Wireless11 Kommentare

Hallo Gemeinde, ich habe hier einen HP Server mit zwei unterschiedlichen und schnellen Platten-RAIDs. Auf dem Gerät habe ich ...

Viren und Trojaner

Computer im Firmennetzwerk scheint ein Virus zu haben

gelöst Frage von jompsiViren und Trojaner6 Kommentare

Hallo zusammen Gestern habe ich ein Mail von admin@meinedomain.de erhalten. Mir kam das Mail sofort suspekt vor, weil ich ...

Batch & Shell

Setlocal enabledelayedexpansion und Sonderzeichen (z.B. !-Zeichen)

Frage von adm2015Batch & Shell2 Kommentare

Hallo Zusammen, ich bin mir sicher, dass dieses Thema schon öfters angesprochen wurde. Leider finde ich hierzu aber nichts. ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs10 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)8 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...