markuskirchler
Goto Top

Unterordner per Batch anlegen mit Bedingung

Hallo liebe Experten,

ich habe in den Foren hier nichts genaues zu meinem speziellen Problem gefunden und hoffe ihr könnt mir dabei helfen.

Ich habe folgende Ordnerstruktur:
P:\X\Y\Studio_000001\Kundenname\Auswertungen\

Darin enthalten sind Ordner für jedes Jahr.

Jetzt möchte ich für jeden einzelnen Kunden einen 2007er Ordner per Batch anlegen. Allerdings nur dann, wenn unter besagtem Pfad bereits ein Ordner für 2006 existiert. Ist das möglich?

Grüße aus dem verschneiten Südtirol ;)

Markus

Content-ID: 86084

Url: https://administrator.de/contentid/86084

Ausgedruckt am: 23.11.2024 um 03:11 Uhr

LeChuck
LeChuck 22.04.2008 um 11:04:15 Uhr
Goto Top
also ich bin kein Experte in Sachen batch, das erst mal vorweg.

Aber, wenn ich das richtig in Erinnerung habe kannst du einfach eine Abfrage mit
"if exist" erstellen, die nachfragt ob der besagte Ordner existiert.
Kann aber auch sein, dass diese Abfrage nur mit Dateien und nicht mit Ordner funktioniert.

ich hoffe das konnte dir wenigstens ein bischen weiter helfen
54487
54487 22.04.2008 um 11:14:36 Uhr
Goto Top
ich habe in den Foren hier nichts genaues zu meinem speziellen Problem gefunden und hoffe
ihr könnt mir dabei helfen.

Dafür gibt es hier sogar ein eigenes Unterforum mit jeder Menge Tipps und Tricks:

#Batch
Biber
Biber 22.04.2008 um 11:35:19 Uhr
Goto Top
Moin MarkusKirchler,

willkommen im Forum.
Ist nicht ganz eindeutig:
  • Gilt der erste Teil des Pfades ("P:\X\Y\Studio_000001") als "Root" für alle Kundenordner?
  • Oder sind auch "X", "Y" und "Studio_000001" variabel?
Bsp: im Ordner X sind alle Kunden aus Europa, in \X\Y die aus Spanien und im Unterordner "Spanien" gibt es "Studio_000001" bis "Studio_0231777"?

Egal, ist so oder so nur eine Zeile...
Ich verschiebe es erstmal nach "Batch & Shell" (THX@nachdenker)

Grüße
Biber
bastla
bastla 22.04.2008 um 11:54:42 Uhr
Goto Top
Hallo MarkusKirchler!

Ein erster Ansatz (vor der Antwort auf Bibers Fragen) sähe so aus:
@echo off & setlocal
set "Basis=P:\X\Y\Studio_000001"  

for /d %%i in ("%Basis%\*.*") do if exist "%%i\Auswertungen\2006\" echo md "%%i\Auswertungen\2007" 2>nul  

Das "echo" vor dem "md" soll dafür sorgen, dass Du entspannt testen kannst, da das Erzeugen des Ordners durch die Ausgabe des entsprechenden Befehles nur simuliert wird. Wenn's passt, einfach das "echo" entfernen.

Grüße
bastla
MarkusKirchler
MarkusKirchler 22.04.2008 um 12:22:56 Uhr
Goto Top
Hallo Bastla,

dein Vorschlag hat perfekt geklappt, kompliment =)

Sorry wenn ich den Unterbereich nicht gefunden habe, bin noch neu hier und das Forum ist so umfangreich, dass man sich erstmal ein bisschen einarbeiten muss ;)

Danke nochmal für die schnellen Antworten!!

Markus

Hallo MarkusKirchler!

Ein erster Ansatz (vor der Antwort auf
Bibers Fragen) sähe so aus:
@echo off & setlocal
> set "Basis=P:\X\Y\Studio_000001"  
> 
> for /d %%i in ("%Basis%\*.*") do  
> if exist "%%i\Auswertungen\2006\"  
> echo md "%%i\Auswertungen\2007"  
> 2>nul
> 

Das "echo" vor dem "md"
soll dafür sorgen, dass Du entspannt
testen kannst, da das Erzeugen des Ordners
durch die Ausgabe des entsprechenden Befehles
nur simuliert wird. Wenn's passt,
einfach das "echo" entfernen.

Grüße
bastla
Biber
Biber 22.04.2008 um 12:49:25 Uhr
Goto Top
Moin MarkusKirchler,

wenn Du denn grad am Einarbeiten bist, dann empfehle ich einen kurzen Abstecher über unsere .

Die Antwort auf meine Frage nach Basis- und variablen Anteilen des Pfades war ja implizit aus Deinen Freudentränen abzuleiten.

Von daher setze ich mal den Beitrag auf "Erledigt".

Grüße
Biber