Vor dem Verzeichniss erstellen überprüfen ob Ordner vorhanden sind
Hallo,
Ich habe mir folgendes geschrieben:
Funktioniert ohne Probleme. Es wird immer das Laufwerk D genutzt.
Könnte mir einer von Euch dabei helfen wie die Batchdatei abgeändert werden muss das vorher
überprüft wird ob alle Ordner vorhanden sind.
Sollte einer oder mehrere Ordner fehlen sollen sie natürlich angelegt werden mit einer Mitteilung
welcher Ordner gefehlt hat.
Ich brauche diese Mitteilung damit ich weiß welche Dateien ich noch manuell in die Ordner kopieren muss.
Vielen Dank im voraus.
Tommylik
Ich habe mir folgendes geschrieben:
mkdir D:\Projects
mkdir D:\Projects\Siemens
mkdir D:\Projects\Siemens\01_Werk
mkdir D:\Projects\Siemens\02_S7
mkdir D:\Projects\Siemens\03_SiVArc
mkdir D:\Projects\Siemens\04_WinCCflexible
mkdir D:\Projects\Siemens\05_Remote_Operate
mkdir D:\Projects\Siemens\06_Dokumentation
mkdir D:\Projects\Siemens\07_ZAUE
mkdir D:\Projects\Siemens\02_S7\01_Bibliothek
mkdir D:\Projects\Siemens\02_S7\02_Projekte
mkdir D:\Projects\Siemens\02_S7\03_Archive
mkdir D:\Projects\Siemens\02_S7\04_Geraetekatalog
mkdir D:\Projects\Siemens\02_S7\05_Referenzen
mkdir D:\Projects\Siemens\03_SiVArc\01_Metamodell
mkdir D:\Projects\Siemens\03_SiVArc\02_Textlisten
mkdir D:\Projects\Siemens\03_SiVArc\03_Sprachdatenbank
mkdir D:\Projects\Siemens\03_SiVArc\04_Registry_Onlinehilfen
mkdir D:\Projects\Siemens\04_WinCCflexible\01_Vorlagen
mkdir D:\Projects\Siemens\04_WinCCflexible\02_Symbolbibliothek
mkdir D:\Projects\Siemens\04_WinCCflexible\03_Runtime
mkdir D:\Projects\Siemens\04_WinCCflexible\04_UserDictionary
Funktioniert ohne Probleme. Es wird immer das Laufwerk D genutzt.
Könnte mir einer von Euch dabei helfen wie die Batchdatei abgeändert werden muss das vorher
überprüft wird ob alle Ordner vorhanden sind.
Sollte einer oder mehrere Ordner fehlen sollen sie natürlich angelegt werden mit einer Mitteilung
welcher Ordner gefehlt hat.
Ich brauche diese Mitteilung damit ich weiß welche Dateien ich noch manuell in die Ordner kopieren muss.
Vielen Dank im voraus.
Tommylik
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 282477
Url: https://administrator.de/contentid/282477
Ausgedruckt am: 17.11.2024 um 11:11 Uhr
12 Kommentare
Neuester Kommentar
Aber jetzt wo ich sehe wie die Batch Datei arbeiten würde, denke ich das das etwas unpraktisch wäre.
Besser wäre es, wenn die Überprüfung in einem Rutsch durcharbeitet und die fehlende Ordner während dessen erstellt werden.
Zauberei, oder was? So oder so: Du musst schon die Ordner prüfen. Entweder nach einem Schema (ich erkenne hier keins) oder nach einer Datendatei oder eben im Script Ordner für Ordner.Besser wäre es, wenn die Überprüfung in einem Rutsch durcharbeitet und die fehlende Ordner während dessen erstellt werden.
Mit Log-Datei:
set LogDat=C:\Logdatei.txt
if exist D:\Projects (
echo D:\Projects bereits vorhanden >>"%LogDat%"
) else (
echo D:\Projects nicht vorhanden >>"%LogDat%"
mkdir D:\Projects
)
if exist D:\Projects\Siemens (
echo D:\Projects\Siemens bereits vorhanden >>"%LogDat%"
) else (
echo D:\Projects\Siemens nicht vorhanden >>"%LogDat%"
mkdir D:\Projects\Siemens
)
...
Das Ganze könnte man u.U. mit einer For-Schleife oder einem Call verfeinern.
E.
set LogDat=C:\Logdatei.txt
set ErrorTest=Nein
if exist D:\Projects (
echo D:\Projects bereits vorhanden >>"%LogDat%"
) else (
set ErrorTest=Ja
echo D:\Projects nicht vorhanden >>"%LogDat%"
mkdir D:\Projects
)
if exist D:\Projects\Siemens (
echo D:\Projects\Siemens bereits vorhanden >>"%LogDat%"
) else (
set ErrorTest=Ja
echo D:\Projects\Siemens nicht vorhanden >>"%LogDat%"
mkdir D:\Projects\Siemens
)
...
if ErrorTest==Ja notepad.exe "%LogDat"
Hallo Tommylik,
auf Basis von emeriks Lösung hier eine Erweiterung. Voraussetzung: Deine obigen Pfade sind in einer LISTE.TXT aufgeführt nach folgendem Schema:
Projects
Projects\Siemens
Projects\Siemens\01_Werk
Projects\Siemens\02_S7
Projects\Siemens\03_SiVArc
Gruß,
joeklemm
auf Basis von emeriks Lösung hier eine Erweiterung. Voraussetzung: Deine obigen Pfade sind in einer LISTE.TXT aufgeführt nach folgendem Schema:
Projects
Projects\Siemens
Projects\Siemens\01_Werk
Projects\Siemens\02_S7
Projects\Siemens\03_SiVArc
@echo off
rem Variablen für Laufwerk, Verzeichnis und LogDatei - muss angepasst werden
set LW=C:
set VERZ=TEMP
set LOG=%LW%\%VERZ%\LOG.TXT
rem Wechsel in entsprechendes Verzeichnis und Löschen vorhandener LogDatei
cd /d %LW%\%VERZ%
if exist "%LOG%" del "%LOG%"
rem FOR-Schleife über alle Einträge in LISTE.TXT
for /f "tokens=1" %%a in (liste.txt) do (
rem Ordner vorhanden, dann Info
if exist %%a\NUL (
echo %%a bereits vorhanden >> "%LOG%"
rem Ordner nicht vorhanden, dann Info und Erstellen
) else (
echo %%a nicht vorhanden - erzeugt ! >> "%LOG%"
mkdir %%a
)
)
Gruß,
joeklemm
Moin,
mit %~d0 kommst du an das Laufwerk von der aus die Batch gestartet wird.
Gruß jodel32
mit %~d0 kommst du an das Laufwerk von der aus die Batch gestartet wird.
set "LOG=%~d0\%VERZ%\LOG.TXT"
Gruß jodel32