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

Mit For-Schleife ordner von z.b 01 bis 15 erstellen lassen

Frage Entwicklung Batch & Shell

Mitglied: 45753

45753 (Level 1)

11.04.2007, aktualisiert 16.04.2007, 8801 Aufrufe, 8 Kommentare

Hallo nochmal,

bastla meinte ich könnte mehrere Beiträge hintereinander erstellen... also tu ich das jetzt mal...

Ich habe das Problem, dass wenn ich ordner von z.b. 1 bis 15 mit der For-Schleife erstellen möchte kein 0 vor der 1 erzeugen kann. Es werden also Ordner 1, 2, 3, ... erstellt aber nicht 01, 02, 03, ... gibt es dafür eine Lösung?

FOR /L %%i in (1,1,15) do mkdir "%%i"
FOR /L %%i in (01,1,15) DO mkdir "%%i" <= erzeugt kein 0 vor der 1

Gruss,

wobleibtdiezeit
Mitglied: Rockfire
11.04.2007 um 13:32 Uhr
Probiermal:

for /L %i in (101,1,115) do set i=%i& set x=!i:~-2! &md !x!

Gruß

Andreas
Bitte warten ..
Mitglied: miniversum
11.04.2007 um 13:37 Uhr
So sollte es gehen:
setlocal enabledelayedexpansion
FOR /L %%i in (1,1,15) do set /a number=1000+%%i & mkdir !number:~-2,2!

miniversum

Edit: war woll mal wieder zu langsam
Bitte warten ..
Mitglied: Biber
11.04.2007 um 14:33 Uhr
..eine weitere Variante ohne DelayedExpansion bzw. Zwischenvariable wäre so:
01.
>for /L %i in (1,1,15) do @if %i LEQ 9 @( echo md 0%i) else @echo md %i 
02.
md 01 
03.
md 02 
04.
md 03 
05.
md 04 
06.
md 05 
07.
md 06 
08.
md 07 
09.
md 08 
10.
md 09 
11.
md 10 
12.
md 11 
13.
md 12 
14.
md 13 
15.
md 14 
16.
md 15
[Demo am Cmd-Prompt mit "ECHO md" statt "md"]

Gruss
Biber
Bitte warten ..
Mitglied: Biber
14.04.2007 um 01:17 Uhr
Moin wobleibtdiezeit,
... gibt es dafür eine Lösung?
Na ja, es gab offensichtlich schon drei Lösungsansätze innerhalb der ersten 2 Stunden nach dem Stellen der Frage.

Das ist aber mittlerweile schon ein paar Tage her.
Hattest Du schon Gelegenheit, die Verwendbarkeit des einen oder anderen Schnipsels zu prüfen? Ergebnis?

Grüße
Biber
Bitte warten ..
Mitglied: 45753
15.04.2007 um 14:54 Uhr
Hallo Biber

Tschuldigung dass ich mich erst jetzt melde... mein zweiter Beitrag ist von mir auch noch unbeantwortet... Ich hatte einfach keine Zeit, sorry. Heute habe ich aber Zeit mich drum zu kümmern. Ich bin gerade dabei meine schon existierenden Variablen mit fixes (die leider wegen meiner falschen For-Schleife nicht funktionieren) mit Hilfe von euren Vorschlägen zu verbinden.
Ich habe nun alle drei Vorschläge ausprobiert und rausbekommen, dass miniversum's Lösung genau das ist, was mir noch fehlte. Allesdings verstehe ich die Syntax (noch) nicht ganz. Ohne

setlocal enabledelayedexpansion

würde miniversum's Vorschlag nicht funktionieren. Und nun Kopfschütteln - ich habe jetzt eine 145kb grosse Batch-Datei geschrieben, weis aber immer noch nicht was setlocal enabledelayedexpansion eigendlich macht ?!? Wenn ich ich dieses in meine bestehende Batch einfüge, könnte es dann möglich sein, dass einige Batchfunktionen dann nicht mehr funktionieren ?!?

Zu !number:~-2,2!
Ist das eine monäre Operation ? braucht man dafür setlocal enabledelayedexpansion ?
was genau macht die -2. Allgemein - ich hab keine Ahnung nach welchem Begriff ich im Web suchen muss um das hier verstehen zu können: :~-2,2

Auch wenn ich nicht weis wie es funktioniert ist es mir schon klar, dass wenn ich ordner von z.B. (1,1,111) anlegen möchte, ich :~-3,3 angeben muss... Da ich diese Werte schon in Variablen vorliegen habe, dürfte es nicht schwer sein dies umzusetzen.

Ich würde mich sehr freuen, wenn ihr mir in bezug auf meine Fragen weiterhelfen könntet.

Grüsse,
wobleibtdiezeit
Bitte warten ..
Mitglied: miniversum
15.04.2007 um 17:21 Uhr
setlocal enabledelayedexpansion
die Hilfe hierfür findest du wenn du im cmd "setlocal /?" eingibst. Es bewirkt das eine Variable die statt mit % vorne und hinten, mit ! gekennzeichnet ist verzögert aufgelöst wird.

FOR /L %%i in (1,1,15) do set /a number=1000+%%i & mkdir !number:~-2,2!
Der erste Teil:
FOR /L %%i in (1,1,15) do
Zählt einfach nur von 1 bis 15 in einer Schritten durch und schreibt den Wert jeweils in die Variable i
set /a number=1000+%%i
setzt die Variable number jeweils auf den wert 1000+i, also 1001,1002,1003 usw.
!number:~-2,2!
bedeutet, dass ab dem zweitlletzten Zeichen von hinten (-2) die nächsten zwei Zeichen (2) benutzt werden. Ein echo statt eines md würde dir also immer nur die beiden letzten Zeichen anzeigen, egal was in der Variabeln steht. Da also bei einstelligen Zahlen in der Variablen number dann nicht "1" sondern "1001" stehen würde, erhälst du als letzte zwei Zeichen die "01". Die Hilfe dazu kannst du genauer nachlesen wenn du am cmd "set /?" eigibst. Steht ungefär in der Mitte dann.

miniversum
Bitte warten ..
Mitglied: 45753
15.04.2007 um 20:29 Uhr
Hallo miniversum,

Danke für Dein Infos! Dein For-Schleife habe ich nun verstanden.
Hätte nicht gedacht, dass es die Hilfe cmd /? auch gibt.. ganau so wie setlocal /?
set /? hatte ich mir schon angesehen, nur anscheinend nicht richtig...

Edit:
Hab gerade bemerkt, dass einige Funktionien mit z.B. nircmd nicht mehr funktionierten. Deshalb hab ich
SETLOCAL ENABLEDELAYEDEXPANSION
und
SETLOCAL DISABLEDELAYEDEXPANSION
direkt vor und hinter die Zeile gesetzt, sodass der Rest der Batch-Datei davon ausgeschlossen wird.

Das Endergebnis sieht nun so aus - hatte sorge, dass das mit meinen vielen Variablen nicht hinhauen würde, aber es geht:

01.
:ordnerpereingabe_format+fix__exec 
02.
SETLOCAL ENABLEDELAYEDEXPANSION 
03.
for /L %%i in (%ordnerpereingabe_startzahl%,%ordnerpereingabe_schritte%,%ordnerpereingabe_endzahl%) do set /a startzahlendzahlfix=%ordnerpereingabe_endzahl_suchen%+%%i & mkdir "%ordnerpereingabe_zeichenvor%!startzahlendzahlfix:~-%ordnerpereingabe_ziffern_zaehler%,%ordnerpereingabe_ziffern_zaehler%!%ordnerpereingabe_zeichennach%" 
04.
SETLOCAL DISABLEDELAYEDEXPANSION 
05.
call :done 
06.
goto :start5 
07.
 
08.
:ordnerpereingabe_format-fix__exec 
09.
for /L %%i in (%ordnerpereingabe_startzahl%,%ordnerpereingabe_schritte%,%ordnerpereingabe_endzahl%) do mkdir "%ordnerpereingabe_zeichenvor%%%i%ordnerpereingabe_zeichennach%" 
10.
call :done 
11.
goto :start5 
12.
 

Ich wollte mich mal bei Euch
Biber, bastla, miniversum, hpdnm, usw. für euren Einsatz bedanken.
Ohne Euch Hilfe wäre ich mit meinr Batch-Programmierung nie so weit gekommen.
Auf viele Features wie auch dieses hier hätte meine Batch-Datei wahrscheinlich einfach verzichten müssen.
Fast immer wenn ich nach einer Problemlösung in sachen Batchprogrammierung google, komme ich hier in dieses Forum zu Euch Spezialisten. Und wenn ich mal in ein anderes Forum geleitet werde, dann stehen dort viele offene Fragen ohne Lösung bzw. Fragen mit falschen Antworten wie z.B. dass man in Batch-Dateien nicht rechnen könne. Ich hab den Eindruck dass das Web ohne dieses Forum hier und Euch um einiges ärmer wäre.

-=== Deshalb ein dickes Dankeschön an Euch ===-

Bitte warten ..
Mitglied: Biber
16.04.2007 um 00:38 Uhr
Uppps. wobleibtdiezeit,

ich weiß nicht, wie es den anderen namentlich genannten jetzt geht, aber mich machst Du damit ganz verlegen...

Vielen Dank jedenfalls für die Blumen - und bei aller Bescheidenheit, es deckt sich durchaus mit meinem Eindruck, dass dieses Forum im Bereich "kleine spezialisierte Gebrauchsbatche und -skripte" durchaus einen Spitzenplatz einnimmt.

Schon allein die Quantität -vor ein paar Tagen hatte ich im Bereich "Batch & Shell" den 1000sten Beitrag und deshalb überlegt, ob ich da mal eine kleine Welle mache- schon allein diese Anzahl von über 1000 Batchfragen, bei denen an den meisten auch ein "Gelöst"-Haken dranhängt - das ist rekordverdächtig. Und die Qualität stimmt IMHO auch. *g

Wie dem auch sei, um die Quote zu halten, setze ich jetzt auch diese Frage auf "Gelöst" und "Geschlossen".
Und danke Dir nochmal im Namen aller für das Feedback.

Gruss
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Batch & Shell
FOR Schleife mit LOOP und nachfolgender FOR Schleife
gelöst Frage von miczarBatch & Shell6 Kommentare

Hallo zusammen, ich habe ein Problem mit einem Batchfile. Situation: im Netzwerk ist kein WINS mehr vorhanden und so ...

Batch & Shell
Verlinkung erstellen Batch Datei mit for Schleife
gelöst Frage von rusdavBatch & Shell2 Kommentare

Hallo, ich möchte aus einer CSV Datei Ordner und eine Verlinkung auf den zu erstellenden Ordner erstellen. Dazu habe ...

Batch & Shell
FOR Schleife läuft nicht
gelöst Frage von sugramBatch & Shell4 Kommentare

Hallo Ich glaube ich sehe den Wald vor lauter Bäumen nicht. Aber ich bekomme die FOR Schleife nicht zum ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 7 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 8 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 10 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 15 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...