Batch Variablen Inhalt als Ordner Namen verwenden und Unterordner erstellen
Hallo Zusammen
Ich mache mich gerade mit Batch vertraut und stosse immer wieder auf hindernisse. Die meisten kann ich mit der Zeit lösen aber bei diesem Problem gelingt es mir nicht. Ich habe als Übung ein Skript erstellt, dass den Namen erfragt und mit diesem dann einen Ordner erstellt. usw.
Info zum System
Win7
64Bit
Software Notepad++
Das ganze Programm ist momentan auf 3 Batch files aufgeteilt.
1:
Weiterleitung auf 2 Batch
2:
Weiterleitung auf 3te Batch
3:
Mein Ziel ist es nun, dass der Inhalt der Variabel %Name% als Ordner genutzt wird und dann anschliessend in diesem Ordner ein Ordner Kommentar entsteht welcher ein Textfile beinhalten mit dem Kommentar des Erstellers.
Ich Danke euch im Voraus für eure Hilfe
sigi
Ich mache mich gerade mit Batch vertraut und stosse immer wieder auf hindernisse. Die meisten kann ich mit der Zeit lösen aber bei diesem Problem gelingt es mir nicht. Ich habe als Übung ein Skript erstellt, dass den Namen erfragt und mit diesem dann einen Ordner erstellt. usw.
Info zum System
Win7
64Bit
Software Notepad++
Das ganze Programm ist momentan auf 3 Batch files aufgeteilt.
1:
@echo off
echo Batch Übung
echo Schreibe deinen Namen
set/p Name=
echo Hallo %Name%
:Frage1
echo Soll ein Persöndlicher Ordner für dich erstellt werden?
echo Ja , Nein
set/p Antwort1=
if %Antwort1%== Ja goto JA1
if %Antwort1%== Nein goto NEIN1
echo.
echo Nur Ja oder Nein eingeben
echo.
goto Frage1
:JA1
if exist C:\Users\adsi\Desktop\Lernprogramm\%Name% call Loeschen.bat
mkdir C:\Users\adsi\Desktop\Lernprogramm\%Name%
echo Persöndlicher Ordner wurde erstellt.
pause>NUL
:NEIN1
goto Frage2
echo.
cls
:Frage2
Weiterleitung auf 2 Batch
2:
@echo off
echo Wollen Sie den vorhandenen Ordner löschen?
echo Ja , Nein
set/p Antwort=
if %Antwort%== Ja goto löschen
if %Antwort%== Nein goto NeuerOrdner1
:NeuerOrdner1
echo Ordner bleibt vorhanden.
echo Stattdessen neuen Ordner erstellen?
echo Ja , Nein
set/p Antwort1=
if %Antwort1%== Ja goto NeuerOrdner
if %Antwort1%== Nein goto Schluss
:löschen
rmdir /s /q C:\Users\adsi\Desktop\Lernprogramm\%Name%
echo Ordner gelöscht
pause>NUL
:NeuerOrdner
echo Wie soll der neue Ordner gennant werden?
set/p Name1=
echo Es wird ein Ordner mit der Bezeichnung %Name1% erstellt
mkdir C:\Users\adsi\Desktop\Lernprogramm\%Name1%
pause>NUL
:Schluss
call Ende.bat
Weiterleitung auf 3te Batch
3:
@echo off
cd C:\User\adsi\Desktop\Lernprogramm\%Name%
if exist Kommentar rmdir Kommentar
mkdir Kommentar
:Kommentar
echo Wollen Sie einen Kommentar schreiben?
echo Ja , Nein
set/p Kommentar=
if %Kommentar%==Ja goto Kommentar1
if %Kommentar%==Nein goto Schluss
echo Nur mit Ja oder Nein Antworten
echo.
goto Kommentar
:Kommentar1
cd C:\User\adsi\Desktop\Lernprogramm\%Name%\Kommentar
echo Schreiben Sie einen Kommentar
set/p Kommentar1=
echo %Kommentar1% > %Name%_Kommentar.txt
echo Vielen Dank für deinen Kommentar!
goto Schluss
:Schluss
echo Das Programm ist beendet
echo Vielen Dank %Name%!
pause
exit
Mein Ziel ist es nun, dass der Inhalt der Variabel %Name% als Ordner genutzt wird und dann anschliessend in diesem Ordner ein Ordner Kommentar entsteht welcher ein Textfile beinhalten mit dem Kommentar des Erstellers.
Ich Danke euch im Voraus für eure Hilfe
sigi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237245
Url: https://administrator.de/contentid/237245
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Sigi,
Anmerkung: Du könntest alles in eine Batch verschachteln. Bei den ganzen Sprungzielen sollte es kein Problem sein. Hier dein Code etwas geändert:
Gruß Sascha
Anmerkung: Du könntest alles in eine Batch verschachteln. Bei den ganzen Sprungzielen sollte es kein Problem sein. Hier dein Code etwas geändert:
@echo off
:: Meine Sets
set PATH="C:\Users\adsi\Desktop\Lernprogramm"
echo Gib mir den Ordnernamen
set/p Name=
echo Ordnername: %Name%
:Frage1
echo Soll der Ordner erstellt werden?
echo Ja(J) , Nein(N)
set /p Antwort1=
IF %Antwort1%== J goto JA1
IF %Antwort1%== N goto Frage2
echo.
echo Nur Ja(J) oder Nein(N) eingeben
echo.
goto Frage1
:JA1
IF EXIST %PATH%\%Name% goto Frage2
md %PATH%\%Name%\
echo Persoenlicher Ordner %Name% wurde erstellt.
goto Kommentar
::Frage2 = NEIN1
:Frage2
echo Es exisitiert bereits ein Ordner mit der Bezeichnung: %Name%
echo Vorhandenen Ordner loeschen?
echo Ja(J) , Nein(N)
set/p Antwort2=
IF %Antwort2%== J goto loeschen
IF %Antwort2%== N goto NeuerOrdner1
:loeschen
rmdir /s /q %PATH%\%Name%
echo Ordner %Name% wurde geloescht.
goto JA1
:NeuerOrdner1
echo Ordner bleibt vorhanden.
echo Stattdessen neuen Ordner erstellen?
echo Ja(J) , Nein(N)
set/p Antwort3=
IF %Antwort3%== J goto NeuerOrdner
IF %Antwort3%== N goto Schluss
:NeuerOrdner
echo Name des Ordners?
set/p Name=
echo Es wird ein Ordner mit der Bezeichnung %Name% erstellt.
md %PATH%\%Name%
echo Persoenlicher Ordner %Name% wurde erstellt.
goto Kommentar
:Kommentar
echo Wollen Sie einen Kommentar schreiben?
echo Ja(J) , Nein(N)
set/p Kommentar=
IF %Kommentar%==J goto Kommentar1
IF %Kommentar%==N goto Schluss
echo.
echo Nur Ja(J) oder Nein(N) eingeben
echo.
goto Kommentar
:Kommentar1
echo Schreiben Sie einen Kommentar
set/p Kommentar1=
echo %Kommentar1% > %PATH%\%Name%\Kommentar.txt
echo Vielen Dank für deinen Kommentar!
goto Schluss
:Schluss
echo Das Programm ist beendet
echo Vielen Dank %Name%!
Hallo sigisigi und SaschaRD!
Nur einige Anmerkungen:
Grüße
bastla
Nur einige Anmerkungen:
- Eine Variable für den (Basis-)Pfad zu verwenden ist eine sehr gute Idee - sie PATH zu nennen allenfalls dann, wenn sicher keine externen CMD-Befehle verwendet werden sollen ...
- Falls der eingegebene Name ein Leerzeichen (oder Sonderzeichen wie etwa ein "&") enthalten sollte, wird sich das Fehlen der Anführungszeichen (um den jeweilgen Ordner-/Dateipfad herum) bemerkbar machen.
- Ein
if /i
gäbe dem Benutzer die Möglichkeit, auch "j" (anstatt "J") einzugeben. - Bei der ersten Eingabe wird noch geprüft, ob der Ordner schon existiert - in
:NeuerOrdner
interessiert das nicht mehr ... - Falls der Benutzer keine Lust hatte, einen Kommentar einzugeben, lässt sich das (derzeit) nur am Inhalt ECHO ist eingeschaltet (ON). in "Kommentar.txt" erkennen - mit
if defined
könnte schon die Eingabe geprüft werden.
Grüße
bastla