Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch Variablen Inhalt als Ordner Namen verwenden und Unterordner erstellen

Frage Entwicklung Batch & Shell

Mitglied: sigisigi

sigisigi (Level 1) - Jetzt verbinden

06.05.2014 um 09:20 Uhr, 2223 Aufrufe, 2 Kommentare

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:
01.
@echo off 
02.
echo Batch Übung 
03.
echo Schreibe deinen Namen 
04.
set/p Name= 
05.
echo Hallo %Name% 
06.
:Frage1 
07.
echo Soll ein Persöndlicher Ordner für dich erstellt werden? 
08.
echo Ja , Nein 
09.
set/p Antwort1= 
10.
if %Antwort1%== Ja goto JA1 
11.
if %Antwort1%== Nein goto NEIN1 
12.
echo. 
13.
 
14.
echo Nur Ja oder Nein eingeben 
15.
echo. 
16.
goto Frage1 
17.
 
18.
:JA1 
19.
if exist C:\Users\adsi\Desktop\Lernprogramm\%Name% call Loeschen.bat 
20.
mkdir C:\Users\adsi\Desktop\Lernprogramm\%Name% 
21.
echo Persöndlicher Ordner wurde erstellt. 
22.
pause>NUL 
23.
 
24.
:NEIN1 
25.
goto Frage2 
26.
echo. 
27.
 
28.
cls 
29.
 
30.
:Frage2
Weiterleitung auf 2 Batch
2:
01.
@echo off 
02.
echo Wollen Sie den vorhandenen Ordner löschen? 
03.
echo Ja , Nein 
04.
set/p Antwort= 
05.
if %Antwort%== Ja goto löschen 
06.
if %Antwort%== Nein goto NeuerOrdner1 
07.
 
08.
:NeuerOrdner1 
09.
echo Ordner bleibt vorhanden. 
10.
echo Stattdessen neuen Ordner erstellen? 
11.
echo Ja , Nein 
12.
set/p Antwort1= 
13.
if %Antwort1%== Ja goto NeuerOrdner 
14.
if %Antwort1%== Nein goto Schluss 
15.
 
16.
:löschen 
17.
rmdir /s /q C:\Users\adsi\Desktop\Lernprogramm\%Name% 
18.
echo Ordner gelöscht 
19.
pause>NUL 
20.
 
21.
:NeuerOrdner 
22.
echo Wie soll der neue Ordner gennant werden? 
23.
set/p Name1= 
24.
echo Es wird ein Ordner mit der Bezeichnung %Name1% erstellt 
25.
mkdir C:\Users\adsi\Desktop\Lernprogramm\%Name1% 
26.
pause>NUL 
27.
 
28.
:Schluss 
29.
call Ende.bat
Weiterleitung auf 3te Batch
3:
01.
@echo off 
02.
 
03.
cd C:\User\adsi\Desktop\Lernprogramm\%Name% 
04.
if exist Kommentar rmdir Kommentar 
05.
mkdir Kommentar 
06.
 
07.
:Kommentar 
08.
echo Wollen Sie einen Kommentar schreiben? 
09.
echo Ja , Nein 
10.
set/p Kommentar= 
11.
if %Kommentar%==Ja goto Kommentar1 
12.
if %Kommentar%==Nein goto Schluss 
13.
 
14.
 
15.
echo Nur mit Ja oder Nein Antworten 
16.
echo. 
17.
goto Kommentar 
18.
 
19.
:Kommentar1 
20.
cd C:\User\adsi\Desktop\Lernprogramm\%Name%\Kommentar 
21.
echo Schreiben Sie einen Kommentar 
22.
set/p Kommentar1= 
23.
echo %Kommentar1% > %Name%_Kommentar.txt 
24.
echo Vielen Dank für deinen Kommentar! 
25.
goto Schluss 
26.
 
27.
 
28.
:Schluss 
29.
echo Das Programm ist beendet 
30.
echo Vielen Dank %Name%! 
31.
pause 
32.
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
Mitglied: SaschaRD
06.05.2014, aktualisiert um 10:33 Uhr
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:
01.
@echo off 
02.
:: Meine Sets 
03.
set PATH="C:\Users\adsi\Desktop\Lernprogramm" 
04.
echo Gib mir den Ordnernamen 
05.
set/p Name= 
06.
echo Ordnername: %Name% 
07.
:Frage1 
08.
echo Soll der Ordner erstellt werden? 
09.
echo Ja(J) , Nein(N) 
10.
set /p Antwort1= 
11.
	IF %Antwort1%== J goto JA1 
12.
	IF %Antwort1%== N goto Frage2 
13.
	echo. 
14.
	echo Nur Ja(J) oder Nein(N) eingeben 
15.
	echo. 
16.
	goto Frage1 
17.
 
18.
:JA1 
19.
IF EXIST %PATH%\%Name% goto Frage2 
20.
md %PATH%\%Name%\ 
21.
echo Persoenlicher Ordner %Name% wurde erstellt. 
22.
goto Kommentar 
23.
 
24.
::Frage2 = NEIN1 
25.
:Frage2 
26.
echo Es exisitiert bereits ein Ordner mit der Bezeichnung: %Name% 
27.
echo Vorhandenen Ordner loeschen? 
28.
echo Ja(J) , Nein(N) 
29.
set/p Antwort2= 
30.
	IF %Antwort2%== J goto loeschen 
31.
	IF %Antwort2%== N goto NeuerOrdner1 
32.
 
33.
:loeschen 
34.
rmdir /s /q %PATH%\%Name% 
35.
echo Ordner %Name% wurde geloescht. 
36.
goto JA1 
37.
	 
38.
:NeuerOrdner1 
39.
echo Ordner bleibt vorhanden. 
40.
echo Stattdessen neuen Ordner erstellen? 
41.
echo Ja(J) , Nein(N) 
42.
set/p Antwort3= 
43.
	IF %Antwort3%== J goto NeuerOrdner 
44.
	IF %Antwort3%== N goto Schluss 
45.
 
46.
:NeuerOrdner 
47.
echo Name des Ordners? 
48.
set/p Name= 
49.
echo Es wird ein Ordner mit der Bezeichnung %Name% erstellt. 
50.
md %PATH%\%Name% 
51.
echo Persoenlicher Ordner %Name% wurde erstellt. 
52.
goto Kommentar 
53.
 
54.
:Kommentar 
55.
echo Wollen Sie einen Kommentar schreiben? 
56.
echo Ja(J) , Nein(N) 
57.
set/p Kommentar= 
58.
	IF %Kommentar%==J goto Kommentar1 
59.
	IF %Kommentar%==N goto Schluss 
60.
	echo. 
61.
	echo Nur Ja(J) oder Nein(N) eingeben 
62.
	echo. 
63.
	goto Kommentar 
64.
 
65.
:Kommentar1 
66.
echo Schreiben Sie einen Kommentar 
67.
set/p Kommentar1= 
68.
echo %Kommentar1% > %PATH%\%Name%\Kommentar.txt 
69.
echo Vielen Dank für deinen Kommentar! 
70.
goto Schluss 
71.
 
72.
:Schluss 
73.
echo Das Programm ist beendet 
74.
echo Vielen Dank %Name%!
Gruß Sascha
Bitte warten ..
Mitglied: bastla
06.05.2014, aktualisiert um 16:29 Uhr
Hallo sigisigi und SaschaRD!

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
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
SAN, NAS, DAS
DSM Synology Unterordner erstellen - Freigabe über Computermanagement (3)

Frage von freeskierchris zum Thema SAN, NAS, DAS ...

Batch & Shell
gelöst Batch - Datei aus Ordner einlesen mit Ausnahmen! (4)

Frage von Daedrafaction zum Thema Batch & Shell ...

Windows Server
gelöst Automatisierter Default-Ordner in jedem Unterordner (6)

Frage von Voiper zum Thema Windows Server ...

Batch & Shell
gelöst Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren (3)

Frage von getmoving zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...