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

Mit Tastatureingabe Variable (DOS) setzen

Frage Entwicklung Batch & Shell

Mitglied: Custos

Custos (Level 1) - Jetzt verbinden

30.12.2005, aktualisiert 04.02.2010, 14502 Aufrufe, 7 Kommentare

Hallo allerseits,

ich hab das kleine Problem, daß ich den Inhalt einer Variablen via Tastatur während der Laufzeit der Batch festlegen muß. Da das ganze nicht unter Windows, sondern unter DOS laufen muß kann ich hier "Set /p" nicht benutzen. Ich habe auch schon einige Tools versucht, die ich gefunden habe (input.exe, input.com, nset.com...) aber keines von denen hat so wirklich funktioniert...

Hat da jemand zufällig etwas das läuft bzw. weiß jemand man sowas herkriegt?

Mit freundlichen Grüßen

piffer
Mitglied: filippg
30.12.2005 um 15:22 Uhr
Hallo,

ich habe da früher mal mit einer antwort.com rumgemacht, die nimmt aber jeweils nur ein Zeichen entgegen.

Kannst du dir selbst mit "debug" basteln:

-a 100
1556:0100 mov ah,8
1556:0102 int 21
1556:0104 cmp al,0
1556:0106 jnz 10a
1556:0108 int 21
1556:010A mov ah,4c
1556:010C int 21
1556:010E
-u 100 10d
1556:0100 B408 MOV AH,08
1556:0102 CD21 INT 21
1556:0104 3C00 CMP AL,00
1556:0106 7502 JNZ 010A
1556:0108 CD21 INT 21
1556:010A B44C MOV AH,4C
1556:010C CD21 INT 21
-r cx
CX 0000
:e
-n antwort.com
-w
0000E Bytes werden geschrieben.
-q

wobei hier jetzt die einzugebenden Befhle mit den Ausgaben vermischt sind... du gibst jeweils alle mit "-" beginneden Zeilen ein, sowie die Assemblerbefehle im oberen Block. Die ersten 4 Ziffern sind jeweils egal (1556), die anderen sollten gleich sein.
Der Code der gedrückten Taste liegt anschliessend in der Umgebungsvarialbe errorlevel.

Verwendung z.B.:

if errorlevel 60 echo "F2 wurde gedrückt"

Die Tastencode findest du in jeder ASCII-Tabelle (oder?) entnehmen oder ausprobieren. Bei if-Abfragen immer den höchsten Wert zuerst abfragen.


Wobei... mir fällt gerade auf: um ganze Wörter einzugeben ist das wahrscheinlich etwas kompliziert.

Filipp
Bitte warten ..
Mitglied: Custos
30.12.2005 um 20:24 Uhr
Geht um die Eingabe einer mehrstelligen Zahl (hätte ich vllt auch erwähnen sollen). Die Zahl wäre ~3-5-stellig. Wäre wohl mit einzelnen Zeichen und Abfrage des errorlevel machbar, aber leider wirklich etwas umständlich. Hatte es mir da etwas einfacher vorgestellt - so in etwas Link anklicken, Prog downloaden und in die Batch einbinden

Naja, falls sich nichts anderes findet... könnte man das Ding evtl. zu dem umbauen was ich brauche? (hab nicht soviel Ahnung von Assembler - eigentlich garkeine )
Bitte warten ..
Mitglied: Biber
30.12.2005 um 23:56 Uhr
Moin piffer,

für welche DOS-Version sucht Du denn dieses Tool?
Und was klappte denn nicht an den bisherigen?

Gruß Biber
Bitte warten ..
Mitglied: Custos
02.01.2006 um 07:28 Uhr
Hallo,

also hab mir einfach unter XP ne DOS-Startdiskette erstellt (V6?).

Es sollte nach Ausführung dieser Tools der eingegebene Text/Zahl in einer (je nach Tool) bestimmten bzw. wählbaren Umgebungsvariable liegen. Nur leider wurden diese Variablen einfach nicht angelegt...

Mit freundlichen Grüßen

piffer
Bitte warten ..
Mitglied: Biber
02.01.2006 um 22:19 Uhr
Hmm, bin jetzt etwas verblüfft...

Wenn Du aus XP (Home? Prof?) eine Dos-Diskette erstellst, ist nicht die Cmd.exe, sondern die Command.com der Befehlsinterpreter?? Sonst würde ja der "Set /P" zur Verfügung stehen. Ist mir vollkommen neu - hab ich allerdings auch noch nie probiert.

Willst Du denn die "DOS"-Diskette auch an Nicht-Windows-Rechnern laufen lassen? Oder nur wieder an XP-Rechnern? Was sollen die Batche denn leisten, die auf dieser DOS-Diskette sind (müssen die lange Dateinamen verarbeiten können, NTFS lesen können, mit Partitionen größer 32 MByte oder mit Partionen > 4 GByte)?.

Oder ist das Hauptfeature das Booten-ohne-Windows-GUI?

Ein bisschen verwirrt
Biber
Bitte warten ..
Mitglied: Custos
04.01.2006 um 07:13 Uhr
So also:

...XP (Home? Prof?)...
- Prof

...nicht die Cmd.exe, sondern die Command.com der Befehlsinterpreter...
- sieht so aus konnte deshalb leider bei if auch nicht "if %groesse% lss 0" und sowas machen. Mußte ich mit dem Tool "ifnumber" lösen... is leider so...

Was sollen die Batche denn leisten, die auf dieser DOS-Diskette sind...?
- Die Batch soll eigentlich nur zur Partitionierung von Rechnern eingesetzt werden. Es sind darin zwar schon Standardgrößen für die Partitionen hinterlegt, aber es kommt ab und an vor, daß man von diesen Größen abweichen möchte bzw. muß. Daher wäre es nicht schlecht, wenn man an dieser Stelle selbst einen Wert definieren könnte ohne die Batch selbst zu verändern...

Mit freundlichen Grüßen

piffer
Bitte warten ..
Mitglied: Biber
05.01.2006 um 00:46 Uhr
Also, piffer,
irgendwelche Freeware-Utilities a la Input.exe oder GetInput.ece bis hin zu BatEnhancer-Paketen gibt es im Internet. Wenn Du da noch mal suchen willst...
Als absolute Behelfskrücke mit Bordmitteln kann ich Dir noch was anbieten, dass ich früher mal zur Passwort-Abfrage am Prompt verwendet habe.
Hat (naturgemäß) den Nachteil, dass die eingegebenen Werte NICHT angezeigt werden.
Wenn es nur für Deinen Privat-Partitionierungsbätch ist und nicht DAU-sicher sein muss... besser als gar nichts.

Du kannst (wie geschrieben, als Behelfslösung/McGuywer-Variante) folgende Mimik in den Batch einbauen:

::----DeinBatch.bat
@echo off
....
Set zahl1=
format/f:160 a: >%temp%\#zahl#
for /f "tokens=6" %a in ('find "EINGABETASTE" %temp%\#zahl#') do Set Zahl1=%%a
Echo Eingegeben Zahl ist %zahl1%. Wenn falsch, Steuerung-C drücken
Pause
Set zahl2=
format/f:160 a: >%temp%\#zahl#
for /f "tokens=6" %a in ('find "EINGABETASTE" %temp%\#zahl#') do Set Zahl2=%%a
Echo Eingegeben Zahl ist %zahl2%. Wenn falsch, Steuerung-C drücken
Pause


:: etc...
~~~~~~~~~~
Du musst allerdings die Find.exe mit auf Diskette kopieren.

Vorher würde ich allerdings noch mal probieren, ob sich nicht die CMD.EXE als Command-Interpreter definieren lässt auf der DOS-Diskette.
Einfach mit auf die Diskette kopieren und eingeben:
Set Comspec=A:\CMD.EXE

Dann sollte auch der "Set /P"-Befehl funktionieren.

(Hab ich aber auch nie probiert *zugeb)

Viel Glück und poste mal Dein Ergebnis bitte
Biber
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst In Batch variable DOS-Funktion von "größer" und "kleiner" Zeichen unterdrücken (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Variable setzen können während timeout (3)

Frage von DontFlameMeITryMyBest zum Thema Batch & Shell ...

Batch & Shell
gelöst Selected Gridview Value in Variable schreiben (4)

Frage von reissaus73 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

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

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...