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

Mitglied: 45753

45753 (Level 1)

11.04.2007, aktualisiert 16.04.2007, 9033 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
Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 StundeWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 1 StundeMicrosoft1 Kommentar

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 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 2 TagenSicherheit

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

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1017 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

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

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

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

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

Server-Hardware
Server für Exchange 2016, Kaufberatung
Frage von MazenauerServer-Hardware10 Kommentare

Guten Tag werte Gemeinde, Vorab: Ich dachte es gab mal einen separaten Bereich für solche Anfragen, habe ich leider ...