Top-Themen

Aktuelle Themen (A bis Z)

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, 4041 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 ..
Ähnliche Inhalte
Entwicklung
Powershell in Listbox ausgabe anpassen
gelöst Frage von LyonADEntwicklung3 Kommentare

Guten Tag zusammen Ich möchte das bei der Listboxausgabe nur die IP und der Ordner(\\XX.X.XX.X\Ordner) angezeigt wird. Jedoch werden ...

Microsoft Office
Mehrere Zeihlen in "Listbox" einfügen
gelöst Frage von GundelputzMicrosoft Office8 Kommentare

Hallo alle zusammen, Heute benötige ich wieder einmal eure Hilfe. Ich benötige eine Möglichkeite mit der ich einen vierzeiligen ...

Batch & Shell
Powershell Listbox Items verschieben
gelöst Frage von internet2107Batch & Shell2 Kommentare

Hallo. Ist es möglich, dass man Items in einer Listbox mit einer Art Button verschiebt? Ich lade die Einträge ...

Batch & Shell
Powershell: ScrollBar in ListBox definieren
gelöst Frage von Markus2016Batch & Shell11 Kommentare

Hallo zusammen, benötige mal wieder Unterstüzung. :-) Ich erzeuge CheckBoxen in einem Array. Aufgrund deren Anzahl benötige ich einen ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 104 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell13 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...