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

Ja-Nein Abrage unter Windows XP,2000

Frage Entwicklung Batch & Shell

Mitglied: racer23

racer23 (Level 1) - Jetzt verbinden

06.01.2010, aktualisiert 14:42 Uhr, 4272 Aufrufe, 6 Kommentare

Habe unter Windows 7 eine Batch-Datei geschrieben. In dieser kommt mehrmals der Befehl choice vor.
Soweit ich weiß gibt es diesen aber bei Windows XP und 2000 nicht.

Hi,

Ich habe eine Batch-Datei zur Verwendung von Xcopy geschrieben. Mit dieser kann ich z.B. den Inhalt einer CD/DVD auf einen USB-Stick oder Festplatte kopieren. Beim erstellen eines Bootbaren USB-Sticks ist das ganz praktisch da so auch versteckte Dateien kopiert werden. Ich habe dabei mehrfach den Befehl choice angewandt. Dieser funktionniert aber soweit ich weiß nicht unter Windows XP oder 2000.
Deshalb würde ich gerne wissen wie man so eine Ja/Nein-Abrage erstellen kann, dass sie auch unter XP/2000 läuft?
(Ich weiß, dass es viel einfacher wäre den Befehl "xcopy" einfach in die Eingabeaufforderung einzugeben, aber ich experimentiere eben gerne.)
Hier seht ihr den Anfang meiner Batch-datei: (Die kompletter wäre etwas zu lang. Aber wenn ihr mir sagt wie oder ob es überhaupt geht, kann ich sie gerne hier hochladen.)

Ich kann mir auch gut vorstellen, dass ich dabei vieles etwas zu umständlich gemacht habe

@echo off
:begin
color 0C
echo Programm zur Verwendung von Xcopy
echo.
echo.
echo Geben sie den Lauwerkbuchstaben des Zielverzeichnisses an.
CHOICE /C CDEFGHIJKLMN /M "C=C:\ D=D:\ ..."

IF %ERRORLEVEL% EQU 1 goto copytoC
IF %ERRORLEVEL% EQU 2 goto copytoD
IF %ERRORLEVEL% EQU 3 goto copytoE
IF %ERRORLEVEL% EQU 4 goto copytoF
IF %ERRORLEVEL% EQU 5 goto copytoG
IF %ERRORLEVEL% EQU 6 goto copytoH
IF %ERRORLEVEL% EQU 7 goto copytoI
IF %ERRORLEVEL% EQU 8 goto copytoJ
IF %ERRORLEVEL% EQU 9 goto copytoK
IF %ERRORLEVEL% EQU 10 goto copytoL
IF %ERRORLEVEL% EQU 11 goto copytoM
IF %ERRORLEVEL% EQU 12 goto copytoN

:copytoC
echo Geben Sie den Laufwerkbuchstaben des Quellverzeichnisses ein.
CHOICE /C CDEFGHIJKLMN /M "C=C:\ D=D:\ ..."

IF %ERRORLEVEL% EQU 1 goto CopyFromC
[ ... ]
IF %ERRORLEVEL% EQU 12 goto CopyFromN

:CopyFromC
echo.
echo Moechten sie das Kopieren starten?
echo C:\ nach C:\
echo.
echo Waehlen Sie N aus um Quell- und Zielverzeichnis neu zu definieren.
CHOICE /C JNA /M "J=Ja N=Nein A=Abrechen"
IF %ERRORLEVEL% EQU 1 goto startCC
IF %ERRORLEVEL% EQU 2 goto begin
IF %ERRORLEVEL% EQU 3 goto ende

... hier geht es eigentlich noch weiter

Würde mich über ein paar Tipps und verbesserungsvorschläge was die Batch betrifft sehr freuen.
Mitglied: laster
06.01.2010 um 13:38 Uhr
Hallo,

01.
set /p JN=[J]a oder [N]ein: 
02.
 
03.
if "%JN%"=="j" goto P1 
04.
if "%JN%"=="J" goto P1 
05.
if "%JN%"=="n" goto P2 
06.
if "%JN%"=="N" goto P2 
07.
 
08.
goto ENDE 
09.
 
10.
:P1 
11.
echo Antwort ist Ja 
12.
goto ENDE 
13.
 
14.
:P2 
15.
echo Antwort ist Nein 
16.
goto ENDE 
17.
 
18.
:ENDE 
19.
set JN=
statt echo ... stehen dann die gewünschten Befehle...

vG LS
Bitte warten ..
Mitglied: racer23
06.01.2010 um 14:01 Uhr
Hi, danke für deine schnelle Antwort.

Es hat alles gut funktioniert.

Hat das "set JN=" bei :ENDE eigentlich noch irgendwas zu bedeuten oder könnte man da auch einfach exit schreiben?
Bitte warten ..
Mitglied: bastla
06.01.2010 um 14:17 Uhr
Hallo racer23!
Hat das "set JN=" bei :ENDE eigentlich noch irgendwas zu bedeuten
Es ersetzt das zumeist am Anfang eines Batches verwendet "setlocal" und erreicht damit, dass die Variable %JN% nach Ende des Batches nicht mehr existiert (damit sie nicht ev in einem anderen Batch - bereits mit der letzten Auswahl vorbelegt - "auftaucht").
oder könnte man da auch einfach exit schreiben?
Ein "exit" ohne Zusatz ist an dieser Stelle sinnlos (bzw kontraproduktiv, da es auch noch das Testen direkt von der Kommandozeile - durch Schließen der CMD-Shell - erschwert).
Noch als Anmerkung: Mit
if /i "%JN%"=="j" goto P1
erübrigt sich die Unterscheidung Groß-/Kleinschreibung (und damit das zweite "if" zum selben Thema).

Grüße
bastla
Bitte warten ..
Mitglied: racer23
06.01.2010 um 14:28 Uhr
Ok, vielen Dank.

Also bei " if /i " wird nicht auf Groß- und Kleinschreibung geachtet.

und ich hätte noch ne kleine Frage:

Wie kann man in einer Bacht-Datei eigentlich ein Kommentar abgeben. Das geht nich mit // ,oder?

könnte das vielleicht " :: " sein? (das habe ich schon mal irgendwo gesehen)
Bitte warten ..
Mitglied: bastla
06.01.2010 um 14:35 Uhr
Hallo racer23!
könnte das vielleicht " :: " sein?
Richtig; alternativ dazu auch mit REM - zB gelegentlich erforderlich in einem mehrzeiligen "if", wie etwa:
01.
if /i "%JN%=="j" ( 
02.
    REM Machen wir's ... 
03.
    echo Antwort ist Ja 
04.
    goto ENDE 
05.
)
[Edit] Suboptimales Beispiel - hier ginge es auch mit "::" ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: racer23
06.01.2010 um 14:38 Uhr
Ok, nochmals vielen Dank bastla!
Bitte warten ..
Ähnliche Inhalte
Datenschutz
Teamviewer im Unternehmen: Ja oder Nein?
Frage von Erix83Datenschutz17 Kommentare

Hallo, für den schnellen Zugriff "zwischendurch" benutzen einige unserer Kollegen Teamviewer um sich von außen (zuhause) mit ihrem Arbeitsplatzrechner ...

Netzwerkmanagement
Zweite firewall ja oder nein
gelöst Frage von Black-MacNetzwerkmanagement9 Kommentare

Hallo liebe Gemeinde, Mich plagt zur zeit eine frage und zwar fange ich von vorne an. Ich überdenke meinen ...

Windows Server
DC Virtualisieren JA oder NEIN
Frage von David2804Windows Server5 Kommentare

Hallo zusammen, hätte da mal eine kleine Frage Dort wo ich mich zu Zeit auf den MCSE vorbereite, wurde ...

Windows Server
Zertifikatsdienste. ja oder nein?
gelöst Frage von KnorkatorWindows Server2 Kommentare

Hallo zusammen, wir haben hier einige Notebooknutzer die es nie schaffen, das Notebook am LAN-Kabel zu betreiben, daher überlege ...

Neue Wissensbeiträge
Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 31 MinutenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

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

Tipp von kgborn vor 2 TagenWindows 108 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 2 TagenSicherheits-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 2 TagenInternet5 Kommentare

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

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

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

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless10 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...