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

ListBox in einer Batchdatei

Frage Entwicklung

Mitglied: truespin

truespin (Level 1) - Jetzt verbinden

26.05.2008, aktualisiert 27.05.2008, 3982 Aufrufe, 6 Kommentare

Hallo zusammen,

Auf anraten eines interessierten Lesers hier der neue Beitrag^^

Man kann in einem Batchfile auch VB-Skripte verwenden, was ich jetzt auch brauche.
Leider weiß ich nicht wie ich eine ListBox wie in VB erstelle und den User eine Auswahl gebe. Ich habe jetzt schon einige Zeit gesucht und das einzige was ich gefunden habe war das hier: http://lab1.de/Central/Software/System-To ...
Leider hilft mir das nicht wirklich weiter.

Ich brauche also ein Auswahlfenster wo ich bis zu sieben Auswahlmöglichkeiten bite. Das entscheidende ist, dass nicht immer alle dieser Auswahlmöglichkeiten erscheinen soll. Welche Möglichkeiten es gibt hängt vom vorherigen Programmablauf ab.

Nun brauche ich eben eine ListBox mit der ich bis zu sieben Auswahlmöglichkeiten aus einem *.txt file auswählen kann. Es ist aber durchaus möglich das in diesem *.txt file nur zwei, drei, vier,... Auswahlmöglichkeiten stehen.

Ich würde mich wieder über eure Hilfe freuen!


truespin
Mitglied: bastla
26.05.2008 um 14:57 Uhr
Hallo truespin!

Mit der Auswahl ist es ja nicht getan - wie soll's denn dann weitergehen, was passiert mit dem Ergebnis?

Grüße
bastla
Bitte warten ..
Mitglied: truespin
26.05.2008 um 15:05 Uhr
Hallo,
das Ergebnis wir in einer Variable abgelegt und daraufhin wird in Subversion ein neuer Ordner erstellt.

Die Auswahl stellt Ordner dar die bereits im angegebenen Arbeitsverzeichnis von Subversion angelegt sind. Nun soll meine Batchdatei herausfinden welche Ordner schon angelegt sind. Das funktioniert auch schon. Das nächste ist jetzt dem User eine Auswahl zu bieten welchen Ordner er als nächstes anlegen möchte. Da diese einer Struktur unterliegen können nur noch Ordner angelegt werden die in logischer Reihenfolge nach dem letzten bereits vorhandenen Ordern liegen. Heißt wenn Ordner 3 schon angelegt ist bekommt der User eine Auswahl von 4,5,6 und 7. Er wählt einen aus, sagen wir 5. Nun wird in Subversion ein neuer Pfad angelegt welcher als letzten Ordnernamen die 5 enthält. Ich benötige nur die Auswahl! Den Rest habe ich schon, hoffe ich zumindest!^^
Da ich den User unserer Firma nicht die DOSBox als Eingabefenster bieten kann brauche ich eben diese ListBox.


truespin
Bitte warten ..
Mitglied: bastla
26.05.2008 um 15:33 Uhr
Hallo truespin!

Da VBScript eigentlich keine GUI zu bieten hat, könnte das als Batch (eher unschön) so aussehen:
01.
@echo off & setlocal 
02.
set "Menue=D:\Auswahl.txt" 
03.
 
04.
set C=%temp%\Ch.vbs 
05.
> %C% echo Menue = Split(CreateObject("Scripting.FilesystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll,vbCrLF) 
06.
>>%C% echo Anzahl = UBound(Menue) + 1 
07.
>>%C% echo Auswahl = "Bitte wählen Sie durch Eingabe der Nummer:" ^& vbCrLF 
08.
>>%C% echo For i = 1 To Anzahl 
09.
>>%C% echo     Auswahl = Auswahl ^& vbCrLF ^& i ^& " " ^& Menue(i - 1) 
10.
>>%C% echo Next 
11.
>>%C% echo Do 
12.
>>%C% echo     OK = False 
13.
>>%C% echo     Eingabe = InputBox(Auswahl, "Auswählen") 
14.
>>%C% echo     If Eingabe = "" Then Eingabe = "0" 
15.
>>%C% echo     If IsNumeric(Eingabe) Then 
16.
>>%C% echo         Eingabe = CInt(Eingabe) 
17.
>>%C% echo         If Eingabe ^<= Anzahl Then OK = True 
18.
>>%C% echo     End If 
19.
>>%C% echo Loop Until OK 
20.
>>%C% echo If Eingabe ^> 0 Then WScript.Echo Menue(Eingabe - 1) 
21.
 
22.
for /f "delims=" %%i in ('cscript //nologo %C% "%Menue%"') do set "Wahl=%%i" 
23.
if defined Wahl (echo Auswahl: %Wahl%) else (echo Keine Auswahl getroffen!)
Die Optionen werden der Datei "D:\Auswahl.txt" entnommen.

Grüße
bastla
Bitte warten ..
Mitglied: truespin
27.05.2008 um 06:59 Uhr
Guten Morgen,
ich hätte da noch ein bis zwei Fragen:

1: was macht die Variable %temp%? In der steht doch garnichts drin, oder doch?
2: ^ ist das Escapezeichen in Batch richtig?

Jetzt muss ich mir das ganze nochmal ansehen, vielen Dank für deine Hilfe.
Soblad ich weiter weiß melde ich mich wieder!

truespin
Bitte warten ..
Mitglied: bastla
27.05.2008 um 07:13 Uhr
Hallo truespin!

zu 1:
%temp% ist eine Systemvariable (für die weiteren einfach "set /?" in einer CMD-Shell eingeben) und enthält den Pfad zum usereigenen Temp-Ordner (von dem Du einigermaßen gesichert annehmen kannst, dass der Benutzer dort Schreibrechte hat).

zu 2:
Exakt; nur so lassen sich ansonsten als Steuerzeichen interpretierte Zeichen wie "<|>&" per "echo" ausgeben.

Noch zum Script: Wenn Du Dir jeweils ">>%C% echo " wegdenkst, kannst Du das VBScript aus dem Batch "herauslesen", aber einfacher ist es, in einem Editor die "%temp%\Ch.vbs" (durch Eingabe des vollständigen Pfades beim Öffnen) anzusehen (natürlich erst, nachdem der Batch einmal ausgeführt wurde).

Grüße
bastla
Bitte warten ..
Mitglied: truespin
27.05.2008 um 09:22 Uhr
Hallo,
ich habe das ganze jetzt mal getestet. Mit dem %temp% funktioniert das ganze bei mir nicht. Wenn ich dafür einen anderen Pfad verwende funktioniert das ganze aber!

Hier ist mein bisheriger Code, nicht viel ich weiß:

01.
@echo off 
02.
 
03.
d: 
04.
set svn=D:\tools\svn-win32-1.4.5\bin\svn.exe 
05.
 
06.
%svn% list https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01 > D:\tools\svn-win32-1.4.5\bin\log\list.txt 
07.
 
08.
 
09.
find "but/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=but/ && goto :GEFUNDEN 
10.
goto :FIND_SUT 
11.
 
12.
:FIND_SUT 
13.
find "sut/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=sut/ && goto :GEFUNDEN  
14.
goto :FIND_SWC 
15.
 
16.
:FIND_SWC 
17.
find "swc/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=swc && goto :GEFUNDEN 
18.
goto :FIND_SWI 
19.
 
20.
:FIND_SWI 
21.
find "swi/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=swi/ && goto :GEFUNDEN 
22.
goto :FIND_SWT 
23.
 
24.
:FIND_SWT 
25.
find "swt/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=swt/ && goto :GEFUNDEN 
26.
goto :FIND_SYI 
27.
 
28.
:FIND_SYI 
29.
find "syi/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=syi/ && goto :GEFUNDEN 
30.
goto :FIND_SYT 
31.
 
32.
:FIND_SYT 
33.
find "syt/" D:\tools\svn-win32-1.4.5\bin\log\list.txt && set var=swt/ && goto :GEFUNDEN 
34.
goto :ERRORLEVEL1 
35.
 
36.
goto :ENDE 
37.
 
38.
:GEFUNDEN 
39.
@echo label %var% wurde gefunden! 
40.
 
41.
 
42.
if %var% == but/ ( 
43.
 
44.
	@echo passt but/  
45.
          
46.
if %var% == sut/ ( 
47.
	 
48.
	@echo passt sut/ 
49.
	%svn% copy https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/but/ -m "Test" ) 
50.
	goto :ANGELEGT 
51.
 
52.
if %var% == swc/ ( 
53.
	 
54.
	@echo passt swc/  
55.
	%svn% copy https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/sut -m "Test" ) 
56.
	goto :ANGELEGT 
57.
 
58.
if %var% == swi/ ( 
59.
 
60.
	@echo passt swi/  
61.
	%svn% copy https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/swc -m "Test" ) 
62.
	goto :ANGELEGT 
63.
 
64.
if %var% == swt/ ( 
65.
 
66.
	@echo passt swt/  
67.
	%svn% copy https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/swi -m "Test" ) 
68.
	goto :ANGELEGT 
69.
 
70.
  
71.
if %var% == syi/ ( 
72.
 
73.
	@echo passt syi/  
74.
	%svn% copy https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/swt -m "Test" ) 
75.
	goto :ANGELEGT 
76.
 
77.
 
78.
if %var% == syt/ ( 
79.
 
80.
	@echo passt syt/  
81.
	%svn% copy https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/syi -m "Test" ) 
82.
	goto :ANGELEGT 
83.
 
84.
goto :ENDE 
85.
 
86.
 
87.
:ANLAGE 
88.
@echo Ein neues Label mit der URL https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/trunk https://subversion/svn/training/TE-G2/P_00X_XYZ/Q_APPL_CUSTOMER/r01/MAIN/tags/L_01_C01/%var% wurde angelegt! 
89.
goto :ENDE 
90.
 
91.
 
92.
:ERRORLEVEL1 
93.
@echo errorlevel1: Es wurde kein Lable gefunden!!! 
94.
call "D:\tools\svn-win32-1.4.5\bin\log\beep.bat" 
95.
 
96.
:ENDE 
97.
 
98.
pause 
99.
 


Bis jetzt habe ich das ganze ohne Userabfrage gemacht. Heißt wenn Lable sut/ vorhanden war habe ich einfach das nächste (also but/) angelet. Nun kommt dein Code ins Spiel. Nachdem ich festgestellt habe welches das letzte Lable war möchte ich dem User eine Auswahl bieten von allen Möglichkeiten die NACH dem letzten bereits vorhandenen Lable kommen. Das Lable but/ ist das letzte in der Reihe. Wenn also das Lable sut/ schon angelegt wurde muss ich nun nur noch but/ zur Auswahl bieten. Sollte swi/ das letzte bereits vorhandene Lable sein so muss ich swc/, sut/ und but/ zur Auswahl bieten. Wenn bereist das letzte Lable (also but/) angelegt ist, darf keine Auswahl möglich sein.

Ich hoffe jetzt kann man mein Problem besser verstehen.
Mittlerweile bin ich fast der Meinung das ganze wäre besser in C# oder VB zu realisierten.

Ich freue mich über konstruktive Kretik!


truespin
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Tools
gelöst Powershell - Auswahl aus Listbox soll Aktion ausführen (4)

Frage von Schmierlappen zum Thema Windows Tools ...

Batch & Shell
gelöst Mit Batchdatei Informationen auslesen und diese strukturiert in Excel ausgeben (9)

Frage von Flodsche zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...