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
GELÖST

Zeilenanzahl einer Datei ermitteln und einer Variable zuordnen womit später beim choice Befehl Auswahloptionen gesetzt werden sollen

Frage Entwicklung Batch & Shell

Mitglied: mhuelse

mhuelse (Level 1) - Jetzt verbinden

29.12.2009, aktualisiert 13:04 Uhr, 8531 Aufrufe, 6 Kommentare

Es geht darum ein Auswahl-Menü anzuzeigen was aus einer kleinen "config.cfg" Datei erzeugt und dargestellt wird. Dabei kann es sein, dass der Menü-Umfang (Zeilenanzahl) immer wieder etwas unterschiedlich sein kann. Mein Problem ist nun, wie bekomme ich es hin, dem "choice.exe" Befehl die richtigen Optionen (zulässiges Auswahl Argument) mitzugeben.

Das sind mal meine Gedanken dazu;

rem --- define variables --- (das kommt normalerweise aus einer anderen FOR schleife)
set choice1=1
set choice2=2
set choice3=3
set choice4=a
set choice5=b
set choice6=g
set choice7=0
set choice8=t
set zeilen=8

for /L %%z in (1,1,%zeilen%) do echo|echo.|set /p = %%choice%%z%%>>%options%
choice /C %options% /M "Your choice please :"

das sollte als Ausgabe erscheine; Your choice please : [1,2,3,a,b,g,0,t]?

Das Problem ist nun wie bekomme ich es hin, dass was in der FOR-Schleife erzeugt wird in eine Variable zu schreiben, den das umleiten in eine Datei klappt.

FOR schleife <Befehle>......>>options.tmp
set /P options=<options.tmp
choice /C %options% /M "Your choice please :"

Ich glaube ich habe mich da etwas verrannt, ich habe momentan keine Idee mehr, wie ich das in eine Variable bekomme, den Workaround mit den temporären File ist nicht akzeptable.

Vielen Dank
Matthias
Mitglied: rubberman
29.12.2009 um 15:20 Uhr
Hallo mhuelse,

sorry, das ist mir jetzt alles etwas verworren. Ich beschränke mich mal auf den Titel deines Threads.

01.
@echo off &setlocal 
02.
for /f "delims=:" %%a in ('findstr . deineDatei.txt^|findstr /n "^"') do set /a Anzahl=%%a 
03.
echo %Anzahl% 
04.
pause
Der Punkt hinter dem ersten FINDSTR dient dazu, dass nur Zeilen mit Inhalt gezählt werden. Alternativ kannst du an dieser Stelle "^" bzw § einsetzen.

Grüße
rubberman
Bitte warten ..
Mitglied: mhuelse
29.12.2009 um 15:33 Uhr
Danke für die Antwort, ist aber nicht ganz das was ich meinte;

Ich benötige eine Variable wo nicht die absolute Anzahl z.B. "12" drin steht, sondern "123456789abc" der reiche nach, so wie es der Befehl choice gebrauchen kann.

MfG
Mathias
Bitte warten ..
Mitglied: rubberman
29.12.2009 um 15:53 Uhr
Hallo mhuelse,

dann vielleicht in der Form:
01.
@echo off &setlocal 
02.
for /f "delims=:" %%a in ('findstr . deineDatei.txtt^|findstr /n "^"') do set /a Anzahl=%%a 
03.
set "Optionen=123456789abcdefghijklmnopqrstuvwxyz" 
04.
call set Optionen=%%Optionen:~,%Anzahl%%% 
05.
echo %Optionen% 
06.
pause
Grüße
rubberman

<edit>
Kommata entfernt (die Syntax von Choice ist mir als XP User nicht so geläufig)
</edit>
Bitte warten ..
Mitglied: mhuelse
29.12.2009 um 16:51 Uhr
Im Grunde schon ganz gut, aber die "optionen=1,2,3,4,5...." kommen bei mir aus einer Datei (der erste Spalte) und diese können unterschiedlich sein. (sonst passt es nicht zum angezeigten Menü) Ich hatte am Anfang das mit den "set choice1=x" der Verständlichkeit halber mit angedeutet.
Das Problem liegt darin, dass normalerweise immer ein Zeilenumbruch mit an die Variable angefügt wird. Aus diesem Grund hatte ich dieses Konstruct hier eingefügt; "echo.|set /p = %%choice%%z%%" was nichts weiter macht, als alles auf eine zeile der Reihe nach schreibt. Am Bildschirm/File klappt das ja auch, nur wie bekomme ich diesen Output in eine Variable gepackt.
Gibt es ein Device, wie NUL: PAR: etc. wohin man das temporär auslagern könnte, den in File schreiben geht ja?

Dafür fehlt mir die Idee.....

MfG
Mathias
Bitte warten ..
Mitglied: rubberman
29.12.2009 um 17:13 Uhr
Hallo mhuelse,

eine temporäre Auslagerung gibt es afaik nicht.
Da ich nicht weiß, was du mit "erste Spalte" meinst, und ich nicht verstehe, warum ein Zeilenumbruch an die Variable hinzugefügt wird, hier nochmal ein kleines Konstrukt als Beispiel.

Wenn du eine Datei "Beispiel.txt" mit folgendem Inhalt hast:
01.
1;abc 
02.
3;def 
03.
2;ghi 
04.
a;jkl
dann verstehe ich als "erste Spalte" im Beispiel, alles vor dem Semikolon.

Somit kannst du dir die Optionen wie folgt zusammen bauen:
*.bat
01.
@echo off &setlocal 
02.
for /f "delims=;" %%x in (Beispiel.txt) do call set "Optionen=%%Optionen%%%%x" 
03.
echo %Optionen% 
04.
pause
Grüße
rubberman
Bitte warten ..
Mitglied: mhuelse
29.12.2009 um 18:45 Uhr
Hi rubberman!

Danke Dir für deine Tips, im Grunde ist es fast so wie ich es meinte. Mit diesem Beispiel von Dir komme ich aber schon weiter.
Naja, ich wollte halt an einer andern stelle ansetzen und nicht nochmal die Datei einlesen, naja so klappt es auch und der erste Versuch das nach meinem Bedürfnis anzupassen war auch ganz vielversprechend.

Vielen Dank Dir nochmal
Mathias
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In einer Batch variable die Datei extension ermitteln ?
gelöst Frage von KriegstreiberBatch & Shell4 Kommentare

Servus, wieder einmal stehe ich vor einem Dilemmer wo die Lösung wahrscheinlich naheliegend ist, ich aber trotzdem nicht drauf ...

Batch & Shell
Verwendung einer gesetzten Variable noch in derselben Eingabezeile
gelöst Frage von EvaEdenBatch & Shell9 Kommentare

Liebe Gemeinde, ich habe ein simples Problem: Ich muss ein paar Befehle in einer Zeile abschicken. Kein Problem, da ...

Batch & Shell
Brauche Hilfe bei Script Datei, Werte der gesetzten Variable wird nicht abgearbeitet
gelöst Frage von Kalma73Batch & Shell5 Kommentare

Hallo, ich habe ein kleines Script geschrieben um unsere Virtuellen Server herunterfahren zu können. um alle Server einfacher zu ...

Batch & Shell
Datei als Variable auslesen und Variable ändern
gelöst Frage von chainsawBatch & Shell1 Kommentar

Hallo Profis, ich komme mit folgendem Problem nicht weiter: In dem Verzeichnis "C:\logfiles" landen bei mir Log-Dateien. Diese Log-Dateien ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 19 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 23 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 109 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...