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 Erstellen eines Verzeichnisses in allen Unterverzeichnissen

Mitglied: ManicPumpkin

ManicPumpkin (Level 1) - Jetzt verbinden

05.06.2011, aktualisiert 18.10.2012, 2859 Aufrufe, 5 Kommentare

Ich versuche eine Batchdatei zu schreiben, welche in allen Unterverzeichnissen, in der dir Batchdatei liegt, ein Verzeichnis zu erstellen. Jedoch habe ich hierbei ein Problem!

Ich habe folgenden Code schon entwickelt:

01.
@ECHO OFF 
02.
REM -------------------------------------------------------------------------- 
03.
REM Changeable values 
04.
REM -------------------------------------------------------------------------- 
05.
SET CREATE=SRC 
06.
SET SRC=\SRC\ 
07.
REM -------------------------------------------------------------------------- 
08.
REM Don't change this values 
09.
REM -------------------------------------------------------------------------- 
10.
SET OLDDIR=%CD% 
11.
SET DEST=%OLDDIR%%SRC% 
12.
REM -------------------------------------------------------------------------- 
13.
FOR /F %%i IN ('DIR /AD /B "%DEST%"') DO ( 
14.
	ECHO 	+ Check folder %%i 
15.
 
16.
	SET "NEWDIR=%DEST%%%i" 
17.
	SET "CREATEDIR=%DEST%%i\%CREATE%" 
18.
 
19.
	IF EXIST "%DEST%%i\%CREATE%" ( 
20.
		ECHO 		+ %CREATE%-Folder exists 
21.
		ECHO 		+ No creation needed 
22.
	) ELSE ( 
23.
		ECHO 		+ %CREATE%-Folder does not exist 
24.
		ECHO 		+ Create %CREATE%-Folder 
25.
		CD %NEWDIR% 
26.
		MKDIR %CREATE% 
27.
		CD %OLDDIR% 
28.
		ECHO 		+ Done 
29.
30.
	ECHO. 
31.
) 
Weiterhin habe ich folgende Ordnerstruktur:
01.
--- Currentdir 
02.
 ˫ /SRC 
03.
   ˫ /a 
04.
   ˫ /b 
05.
   ˪ /c 
06.
      ˪ /src 
07.
  
08.
 ˪ execute.bat
Ich bekomme jedoch die Meldung das in keinem der Ordner schon der Ordner ensteht. Folgenden Output bekomme ich:
01.
        + Check folder a 
02.
                + SRC-Folder does not exist 
03.
                + Create SRC-Folder 
04.
Ein Unterverzeichnis oder eine Datei mit dem Namen "SRC" existiert bereits. 
05.
                + Done 
06.
 
07.
        + Check folder b 
08.
                + SRC-Folder does not exist 
09.
                + Create SRC-Folder 
10.
Ein Unterverzeichnis oder eine Datei mit dem Namen "SRC" existiert bereits. 
11.
                + Done 
12.
 
13.
        + Check folder c 
14.
                + SRC-Folder does not exist 
15.
                + Create SRC-Folder 
16.
Ein Unterverzeichnis oder eine Datei mit dem Namen "SRC" existiert bereits. 
17.
                + Done
Wenn ich mir mit jeder Iteration die Variable NEWDIR ausgeben lasse, dann bekomme ich immer diese Meldung:
01.
<Ordnerhierarchie>\SRC\c
Weiß jemand Rat ?
Ich bin ehrlich gesagt überfragt, warum der Ordnername erst richtig ausgegeben wird und nach der Verarbeitung mit SET immer der Ordner "c" genutzt wird.

Beste Grüße und Danke,
Manic.
Mitglied: bastla
05.06.2011, aktualisiert 18.10.2012
Hallo ManicPumpkin und willkommen im Forum!

Das Stichwort zu Deinem Code wäre "delayedExpansion" - siehe dazu auch Friemlers Tutorial zur FOR-Schleife ...

- aber falls ich das richtig verstehe und Du tatsächlich nur erreichen willst, dass es in jedem Unterverzeichnis des aktuellen Verzeichnisses ein Verzeichnis "SRC" geben soll, würde
for /d %%i in (*.*) do md "%%i\SRC" 2^>nul
genügen ...

Wenn Du gesteigerten Wert auf die Prüfung, ob das Verzeichnis bereits vorhanden ist, legst, dann eben:
01.
for /d %%i in (*.*) do ( 
02.
    if exist "%%i\SRC" ( 
03.
        echo Gibt's schon 
04.
    ) else ( 
05.
        echo Wird in %%i erstellt 
06.
        rem oder auch: Wird in %%~nxi erstellt 
07.
        md "%%i\SRC" 
08.
09.
)
Natürlich ist das, wie Du es ja schon vorhattest, mit einer Variablen für "SRC" etwas "schöner" und wartungsfreundlicher ...

So oder so ist die "Herumhüpferei" mit "CD" aber unnötig.

Grüße
bastla
Bitte warten ..
Mitglied: ManicPumpkin
05.06.2011 um 11:22 Uhr
Hallo bastla,

ich danke dir für die Information.
Da hätte ich im Endeffekt ewig gesucht, ehe ich das gefunden hätte. ;)
Jetzt funktioniert es, mittels DelayedExpansion!

Die Geschichte mit dem CD herumhüpfen habe ich auch weggelassen, da ich mir ja sowieso schon alle nötigen Variablen zuvor zusammen gebastelt hatte und im Endeffekt nur mittels MKDIR den Ordner erstellen brauchte. ;)

Was mich jetzt noch einmal interessieren würde ist folgendes:
Was bedeutet denn "%%~nxi" ?

Beste Grüße,
Manic.
Bitte warten ..
Mitglied: TsukiSan
05.06.2011 um 16:29 Uhr
hallo ManicPumpkin,

Was bedeutet denn "%%~nxi" ?
Ein bisschen Dr.Google ergibt dies:
Das ist zwar in englisch, aber beschreibt es sehr einfach.

Gruss
Tsuki
Bitte warten ..
Mitglied: ManicPumpkin
05.06.2011 um 16:44 Uhr
Hallo Tsuki!

Ich habe es gefunden. ;)
Ich danke dir!

Liebe Grüße,
Manic.
Bitte warten ..
Mitglied: Skyemugen
05.06.2011 um 17:39 Uhr
Zitat von TsukiSan:
Ein bisschen Dr.Google ergibt dies:
Das ist zwar in englisch, aber beschreibt es sehr einfach.

Aloha TsukiSan,

... ein bisschen for /? + runterscrollen hätte es doch auch getan, oder nicht?

greetz André
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Bei freigegebene Verzeichnisse in C:temp und Unterverzeichnisse Freigabe löschen

gelöst Frage von wk3963Batch & Shell3 Kommentare

Hallo, Aus Sicherheitsgründen soll ich bei WIN7 Rechnern alle Freigaben in C:\Temp und in Unterverzeichnissen schließen. Ich muss das ...

Batch & Shell

Vor dem Verzeichniss erstellen überprüfen ob Ordner vorhanden sind

Frage von TommylikBatch & Shell12 Kommentare

Hallo, Ich habe mir folgendes geschrieben: Funktioniert ohne Probleme. Es wird immer das Laufwerk D genutzt. Könnte mir einer ...

Windows 7

Verzeichnisse per Script erstellen und Dateien dort hinkopieren

gelöst Frage von peter58haWindows 72 Kommentare

Hallo zusammen! Ich kenne mich mit einfachen BATCH-Dateien aus, aber mit WSH oh - gar nicht! Folgendes möchte ich ...

Windows Server

Erstellen von Verzeichnissen, Gruppen und Berechtigungen über Powershell und CSV-Datei

gelöst Frage von kilrathiWindows Server5 Kommentare

Hallo Leute, ich habe eine Frage und hoffe Ihr könnt mir dabei schnell und einfach helfen: In meinem ersten ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 5 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 8 StundenAdministrator.de Feedback10 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...