Via Batch Ordner und Unterordner erstellen
Hallo zusammen,
ich habe auf ein Netzlaufwerk 2650 Ordner (Haupt und Unterordner zusammen) die ich in den letzten 10 Jahren manuel angelegt habe. Nun möchte ich gerne vom Desktop aus auf dieses Netzlaufwerk "\\Server1\X:\" mit einer Batchdatei zugreifen um dort Ordner und Unterordner mit folgender fester Struktur erstellen zu lassen.
Was mich angeht, ich habe überhaupt keine kenntnisse was das programmieren angeht. Durch suchen, lesen und experementieren habe ich folgendes zusammengestellt das einigermaßen läuft:
Hier der zusammengebastelte Code:
echo off
cls
:start
ECHO.
ECHO 1. Ordner erstell tool
set choice=""
set /p choice=Bitte geben Sie den Ordner Namen ein.
mkdir "%choice%"
pushd "%choice%"
mkdir "01 KUNDENANFRAGE-PROJEKT NO"
mkdir "02 BESTELLUNGEN"
mkdir "03 ZEICHNUNGEN"
cd "01 KUNDENANFRAGE-PROJEKT NO
mkdir "01 Bestellanfragen"
mkdir "02 Fakturierung"
mkdir "03 Korrespondenz"
mkdir "04 Zeichnungen"
mkdir "05 Doku-Liefervorschriften
mkdir "06 Fotos
cd..
cd "02 BESTELLUNGEN"
mkdir "Bestellref-Projekt No"
cd "Bestellref-Projekt No"
mkdir "01 Fakturierung"
mkdir "02 Korrespondenz"
mkdir "03 Zeichnungen"
mkdir "04 QA-Dokumente"
mkdir "05 Verzollung"
mkdir "06 Fotos"
cd..
cd..
cd "03 ZEICHNUNGEN"
mkdir "01 Zeichnung zum Auftrag"
mkdir "02 Zeichnung zum Auftrag"
mkdir "03 Zeichnung zum Auftrag"
echo.
echo.
pause
aber es läuft noch nicht ganz so wie ich es mir vorstelle, ich bekomme es nicht hin, dass die Batchdatei nach Eingabeaufforderung: "Ordner Name eingeben" auf dem Laufwerk nachschaut und prüft ob so ein Ordner existiert, wenn ja dann soll er die Ordner und Unterordner so wie sie in der Batch eingetragenen sind anlegen
wenn nicht eben auffordern einen Ordner Namen anzugeben.
Ich wäre euch sehr dankbar wenn Ihr mir Lösungsvorschläge aufzeigen könntet.
Danke.
ich habe auf ein Netzlaufwerk 2650 Ordner (Haupt und Unterordner zusammen) die ich in den letzten 10 Jahren manuel angelegt habe. Nun möchte ich gerne vom Desktop aus auf dieses Netzlaufwerk "\\Server1\X:\" mit einer Batchdatei zugreifen um dort Ordner und Unterordner mit folgender fester Struktur erstellen zu lassen.
Was mich angeht, ich habe überhaupt keine kenntnisse was das programmieren angeht. Durch suchen, lesen und experementieren habe ich folgendes zusammengestellt das einigermaßen läuft:
Hier der zusammengebastelte Code:
echo off
cls
:start
ECHO.
ECHO 1. Ordner erstell tool
set choice=""
set /p choice=Bitte geben Sie den Ordner Namen ein.
mkdir "%choice%"
pushd "%choice%"
mkdir "01 KUNDENANFRAGE-PROJEKT NO"
mkdir "02 BESTELLUNGEN"
mkdir "03 ZEICHNUNGEN"
cd "01 KUNDENANFRAGE-PROJEKT NO
mkdir "01 Bestellanfragen"
mkdir "02 Fakturierung"
mkdir "03 Korrespondenz"
mkdir "04 Zeichnungen"
mkdir "05 Doku-Liefervorschriften
mkdir "06 Fotos
cd..
cd "02 BESTELLUNGEN"
mkdir "Bestellref-Projekt No"
cd "Bestellref-Projekt No"
mkdir "01 Fakturierung"
mkdir "02 Korrespondenz"
mkdir "03 Zeichnungen"
mkdir "04 QA-Dokumente"
mkdir "05 Verzollung"
mkdir "06 Fotos"
cd..
cd..
cd "03 ZEICHNUNGEN"
mkdir "01 Zeichnung zum Auftrag"
mkdir "02 Zeichnung zum Auftrag"
mkdir "03 Zeichnung zum Auftrag"
echo.
echo.
pause
aber es läuft noch nicht ganz so wie ich es mir vorstelle, ich bekomme es nicht hin, dass die Batchdatei nach Eingabeaufforderung: "Ordner Name eingeben" auf dem Laufwerk nachschaut und prüft ob so ein Ordner existiert, wenn ja dann soll er die Ordner und Unterordner so wie sie in der Batch eingetragenen sind anlegen
wenn nicht eben auffordern einen Ordner Namen anzugeben.
Ich wäre euch sehr dankbar wenn Ihr mir Lösungsvorschläge aufzeigen könntet.
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 227540
Url: https://administrator.de/contentid/227540
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
19 Kommentare
Neuester Kommentar
Ich glaub am einfachsten wäre, wenn du mit einer "if exist" Abfrage arbeitest, ob der Ordner bereits besteht.
echo off
cls
:start
ECHO.
ECHO 1. Ordner erstell tool
set choice=""
set /p choice=Bitte geben Sie den Ordner Namen ein.
if exist "\\Server1\X:\%choice%" GOTO :END
mkdir "%choice%"
pushd "%choice%"
mkdir "01 KUNDENANFRAGE-PROJEKT NO"
mkdir "02 BESTELLUNGEN"
mkdir "03 ZEICHNUNGEN"
cd "01 KUNDENANFRAGE-PROJEKT NO
mkdir "01 Bestellanfragen"
mkdir "02 Fakturierung"
mkdir "03 Korrespondenz"
mkdir "04 Zeichnungen"
mkdir "05 Doku-Liefervorschriften
mkdir "06 Fotos
cd..
cd "02 BESTELLUNGEN"
mkdir "Bestellref-Projekt No"
cd "Bestellref-Projekt No"
mkdir "01 Fakturierung"
mkdir "02 Korrespondenz"
mkdir "03 Zeichnungen"
mkdir "04 QA-Dokumente"
mkdir "05 Verzollung"
mkdir "06 Fotos"
cd..
cd..
cd "03 ZEICHNUNGEN"
mkdir "01 Zeichnung zum Auftrag"
mkdir "02 Zeichnung zum Auftrag"
mkdir "03 Zeichnung zum Auftrag"
echo.
echo.
:END
pause
echo off
cls
:start
ECHO.
ECHO 1. Ordner erstell tool
set choice=""
set /p choice=Bitte geben Sie den Ordner Namen ein.
if exist "\\Server1\X:\%choice%" GOTO :END
mkdir "%choice%"
pushd "%choice%"
mkdir "01 KUNDENANFRAGE-PROJEKT NO"
mkdir "02 BESTELLUNGEN"
mkdir "03 ZEICHNUNGEN"
cd "01 KUNDENANFRAGE-PROJEKT NO
mkdir "01 Bestellanfragen"
mkdir "02 Fakturierung"
mkdir "03 Korrespondenz"
mkdir "04 Zeichnungen"
mkdir "05 Doku-Liefervorschriften
mkdir "06 Fotos
cd..
cd "02 BESTELLUNGEN"
mkdir "Bestellref-Projekt No"
cd "Bestellref-Projekt No"
mkdir "01 Fakturierung"
mkdir "02 Korrespondenz"
mkdir "03 Zeichnungen"
mkdir "04 QA-Dokumente"
mkdir "05 Verzollung"
mkdir "06 Fotos"
cd..
cd..
cd "03 ZEICHNUNGEN"
mkdir "01 Zeichnung zum Auftrag"
mkdir "02 Zeichnung zum Auftrag"
mkdir "03 Zeichnung zum Auftrag"
echo.
echo.
:END
pause
Hey,
mir ist nicht klar geworden, was du beabsichtigst, ob du auf dem Server bereits angemeldet bist, warum der Ordner Name 2x abgefragt werden soll
Gruss.
mir ist nicht klar geworden, was du beabsichtigst, ob du auf dem Server bereits angemeldet bist, warum der Ordner Name 2x abgefragt werden soll
ich bekomme es nicht hin, dass die Batchdatei nach Eingabeaufforderung: "Ordner Name eingeben" auf dem Laufwerk nachschaut und prüft ob so ein Ordner existiert, wenn ja dann soll er die Ordner und Unterordner so wie sie in der Batch eingetragenen sind anlegen
wenn nicht eben auffordern einen Ordner Namen anzugeben.
...wenn nicht eben auffordern einen Ordner Namen anzugeben.
Gruss.
Hallo supisupper!
Abgesehen davon, dass ich auch nicht so richtig verstehe, wo Dein Problem liegt, einige Hinweise:
Grüße
bastla
Abgesehen davon, dass ich auch nicht so richtig verstehe, wo Dein Problem liegt, einige Hinweise:
- In "\\Server1\X:\" dürft ein ":" zuviel sein ...
- Wenn Du einen fixen Bestandteil (eben "\\Server1\X") im Pfad hast, sollte der auch in eine Variable (zB %Pfad%) - so kannst Du ihn ggf einfacher ändern.
- "
mkdir
" lässt sich auf "md
" abkürzen. - Anstelle des "
cd
"-Gehüpfes könntest Du einfach komplette Pfade angeben (mit den Variablen für den Pfad und %choice% vorne weg). - Wenn Du einen Unterordner anlegst, wird bei Bedarf der "Oberordner" automatisch erstellt - zB würde
md "%Pfad%\%choice%\02 BESTELLUNGEN\Bestellref-Projekt No\01 Fakturierung"
die Ordner "%choice%", "02 BESTELLUNGEN" und "Bestellref-Projekt No" (falls einer oder mehrere noch nicht vorhanden wären) gleich im selben Arbeitsgang erzeugen. - Kosmetik: Ein angefügtes "
2>nul
" unterdrückt die Anzeige einer Fehlermeldung (etwa, wenn es den Ordner, der angelegt werden soll, schon gibt),
Grüße
bastla
Also für den Fall, dass die Verzeichnisstruktur immer gleich ist, sieh Dir doch mal das Windows Standard Programm xcopy an.
Mit xcopy <Quelle> <Ziel> /S /T legst Du nur die Ordnerstruktur an, ohne Dateien zu kopieren.
Dann noch einen nette IF EXIST Abfrage, um herauszufinden, ob das Zielverzeichnis eventuell schon angelegt ist, und fertig.
Mit xcopy <Quelle> <Ziel> /S /T legst Du nur die Ordnerstruktur an, ohne Dateien zu kopieren.
Dann noch einen nette IF EXIST Abfrage, um herauszufinden, ob das Zielverzeichnis eventuell schon angelegt ist, und fertig.
Hallo supisupper!
Vorweg zu
Grüße
bastla
Vorweg zu
Geht es überhaupt die Batch vom Desktop aus aufrufen und auf LW X: ordner anlegen lassen ?
Wenn Du die nötigen Berechtigungen hast, ist das kein Problem, speziell wenn Du (wie empfohlen und unten gezeigt) mit vollständigen Pfaden arbeitest ...*hier püfen, wenn Kunde-Heinzfranz auf dem LW existiert dann in Ordner Kunde-Heinzfranz diese ordnerstrucktur anlegen:
und*Wenn Kunde-Heinzfranz nicht existiert, dann die komplette obige Struktur mit dem Ordner Namen „Kunde-Heinzfranz“ anlegen.
laufen für mich auf das selbe Ziel hinaus: im Endeffekt soll es alle Ordner geben; daher würde ich sie einfach jedesmal anzulegen versuchen (wenn es einen Ordner schon gibt, passiert ja durch ein "md
" nix Schlimmes - es wird nur eine Fehlermeldung ausgegeben, und diese kann auch - siehe oben - unterdrückt werden) - ungetestet etwa so:@echo off & setlocal
cls
ECHO.
ECHO 1. Ordner erstell tool
set "Kunde="
set /p Kunde=Bitte geben Sie den Namen ein:
if defined Kunde (
(
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\01 Bestellanfragen"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\02 Fakturierung"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\03 Korrespondenz"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\04 Zeichnungen"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\05 Doku-Liefervorschriften"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\06 Fotos"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\01 Fakturierung"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\02 Korrespondenz"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\03 Zeichnungen"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\04 Doku-Liefervorschriften"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\05 Fotos"
md "X:\%Kunde%\03 ZEICHNUNGEN\01 Zeichnung zum Auftrag"
md "X:\%Kunde%\03 ZEICHNUNGEN\02 Zeichnung zum Auftrag"
md "X:\%Kunde%\03 ZEICHNUNGEN\03 Zeichnung zum Auftrag"
) 2>nul
) else (
echo Keine Eingabe!
)
pause
bastla
Hallo bastla
ich bin neu in diesem Forum und bin via Google Suche zu diesem Lösungsansatz gekommen.
Der passt fast perfekt zu meinem Vorhaben.
Um es für meine Ordnerstruktur perfekt zu machen, wär noch eine alphabetische vor Sortierungen notwendig.
Bedeutet im Zielordner gibt es schon eine alphabetische Ordnerstruktur
A - G
H - M
N - S
T - Z
0 - 9
Der Bacht, sollte jetzt anhand von dem ersten Buchstaben des Kunden, das alphabetisch richtige Ziele auswählen und dort die Ordnerstruktur anlegen.
Also wenn der die Kunde Heizfranz heißt, soll die Ordnerstruktur im Ordner H - M anlegt werden.
Für jeden Lösungsansatz wäre ich sehr dankbar.
Vielen dank im Voraus
Grüße
DonSimon
ich bin neu in diesem Forum und bin via Google Suche zu diesem Lösungsansatz gekommen.
Der passt fast perfekt zu meinem Vorhaben.
Um es für meine Ordnerstruktur perfekt zu machen, wär noch eine alphabetische vor Sortierungen notwendig.
Bedeutet im Zielordner gibt es schon eine alphabetische Ordnerstruktur
A - G
H - M
N - S
T - Z
0 - 9
Der Bacht, sollte jetzt anhand von dem ersten Buchstaben des Kunden, das alphabetisch richtige Ziele auswählen und dort die Ordnerstruktur anlegen.
Also wenn der die Kunde Heizfranz heißt, soll die Ordnerstruktur im Ordner H - M anlegt werden.
Für jeden Lösungsansatz wäre ich sehr dankbar.
Vielen dank im Voraus
Grüße
DonSimon
Zitat von @bastla:
Hallo supisupper!
Vorweg zu
Grüße
bastla
Hallo supisupper!
Vorweg zu
Geht es überhaupt die Batch vom Desktop aus aufrufen und auf LW X: ordner anlegen lassen ?
Wenn Du die nötigen Berechtigungen hast, ist das kein Problem, speziell wenn Du (wie empfohlen und unten gezeigt) mit vollständigen Pfaden arbeitest ...*hier püfen, wenn Kunde-Heinzfranz auf dem LW existiert dann in Ordner Kunde-Heinzfranz diese ordnerstrucktur anlegen:
und*Wenn Kunde-Heinzfranz nicht existiert, dann die komplette obige Struktur mit dem Ordner Namen „Kunde-Heinzfranz“ anlegen.
laufen für mich auf das selbe Ziel hinaus: im Endeffekt soll es alle Ordner geben; daher würde ich sie einfach jedesmal anzulegen versuchen (wenn es einen Ordner schon gibt, passiert ja durch ein "md
" nix Schlimmes - es wird nur eine Fehlermeldung ausgegeben, und diese kann auch - siehe oben - unterdrückt werden) - ungetestet etwa so:@echo off & setlocal
cls
ECHO.
ECHO 1. Ordner erstell tool
set "Kunde="
set /p Kunde=Bitte geben Sie den Namen ein:
if defined Kunde (
(
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\01 Bestellanfragen"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\02 Fakturierung"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\03 Korrespondenz"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\04 Zeichnungen"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\05 Doku-Liefervorschriften"
md "X:\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\06 Fotos"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\01 Fakturierung"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\02 Korrespondenz"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\03 Zeichnungen"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\04 Doku-Liefervorschriften"
md "X:\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\05 Fotos"
md "X:\%Kunde%\03 ZEICHNUNGEN\01 Zeichnung zum Auftrag"
md "X:\%Kunde%\03 ZEICHNUNGEN\02 Zeichnung zum Auftrag"
md "X:\%Kunde%\03 ZEICHNUNGEN\03 Zeichnung zum Auftrag"
) 2>nul
) else (
echo Keine Eingabe!
)
pause
bastla
Zitat von @DonSimon:
Bedeutet im Zielordner gibt es schon eine alphabetische Ordnerstruktur
A - G
H - M
N - S
T - Z
0 - 9
Der Bacht, sollte jetzt anhand von dem ersten Buchstaben des Kunden, das alphabetisch richtige Ziele auswählen und dort die Ordnerstruktur anlegen.
Also wenn der die Kunde Heizfranz heißt, soll die Ordnerstruktur im Ordner H - M anlegt werden.
Bedeutet im Zielordner gibt es schon eine alphabetische Ordnerstruktur
A - G
H - M
N - S
T - Z
0 - 9
Der Bacht, sollte jetzt anhand von dem ersten Buchstaben des Kunden, das alphabetisch richtige Ziele auswählen und dort die Ordnerstruktur anlegen.
Also wenn der die Kunde Heizfranz heißt, soll die Ordnerstruktur im Ordner H - M anlegt werden.
@echo off & setlocal enabledelayedexpansion
:Start
cls
ECHO.
ECHO 1. Ordner erstell tool
set "Kunde="
set /p Kunde=Bitte geben Sie den Namen ein:
if not defined Kunde goto :Start
echo %Kunde% | findstr /i "^[^0-9A-Z]" >nul 2>&1 && (
echo Fehler: Name muss mit 0-9 oder A-Z beginnen. Eingabe wiederholen.
pause
Goto :Start
)
echo %Kunde% | findstr /i "^[A-G]" >nul 2>&1 && set "group=A - G"
echo %Kunde% | findstr /i "^[H-M]" >nul 2>&1 && set "group=H - M"
echo %Kunde% | findstr /i "^[N-S]" >nul 2>&1 && set "group=N - S"
echo %Kunde% | findstr /i "^[T-Z]" >nul 2>&1 && set "group=T - Z"
echo %Kunde% | findstr /i "^[0-9]" >nul 2>&1 && set "group=0 - 9"
(
md "X:\!group!\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\01 Bestellanfragen"
md "X:\!group!\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\02 Fakturierung"
md "X:\!group!\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\03 Korrespondenz"
md "X:\!group!\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\04 Zeichnungen"
md "X:\!group!\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\05 Doku-Liefervorschriften"
md "X:\!group!\%Kunde%\01 KUNDENANFRAGE-PROJEKT NO\06 Fotos"
md "X:\!group!\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\01 Fakturierung"
md "X:\!group!\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\02 Korrespondenz"
md "X:\!group!\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\03 Zeichnungen"
md "X:\!group!\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\04 Doku-Liefervorschriften"
md "X:\!group!\%Kunde%\02 BESTELLUNGEN\Bestellref-Projekt No\05 Fotos"
md "X:\!group!\%Kunde%\03 ZEICHNUNGEN\01 Zeichnung zum Auftrag"
md "X:\!group!\%Kunde%\03 ZEICHNUNGEN\02 Zeichnung zum Auftrag"
md "X:\!group!\%Kunde%\03 ZEICHNUNGEN\03 Zeichnung zum Auftrag"
) 2>nul
pause
🕯️🕯️🕯️🕯️