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

Set p choise aus einer If-Abfrage heraus

Frage Entwicklung Batch & Shell

Mitglied: Mario.Steinberg

Mario.Steinberg (Level 1) - Jetzt verbinden

25.04.2012 um 17:01 Uhr, 2470 Aufrufe, 3 Kommentare

Hallo ich habe folgendes Problem.
Ich möchte aus einer If-Abfrage heraus eine Variable über die Eingabeaufforderung setzten. Hier ein Beispiel:

01.
  
02.
@echo off 
03.
 
04.
set AUFZAEHLUNG=auf1 auf2 auf3 
05.
for %%a in (%AUFZAEHLUNG%) do ( 
06.
	if exist test.bat ( 
07.
		set choice= 
08.
		set /p choice=Do you really want to overwrite the existig files y/n [n]?  
09.
		if not ´%choice%´==´´ set choice=%choice:~0,1% 
10.
		echo choise = %choice% 
11.
		if ´%choice%´==´y´ ECHO goto COPY_FILES 
12.
		if ´%choice%´==´n´ ECHO goto END 
13.
14.
15.
 
16.
:END 
17.
pause 
18.
exit


Das Problem hier ist das choise nicht gesetzt wird. Probiere ich das:

01.
  
02.
@echo off 
03.
 
04.
set AUFZAEHLUNG=auf1 auf2 auf3 
05.
for %%a in (%AUFZAEHLUNG%) do ( 
06.
	echo 1=%%a 
07.
	if exist test.bat ( 
08.
		echo 2=%%a 
09.
		goto ABFRAGE 
10.
	:ANTWORT 
11.
		echo 3=%%a 
12.
		if not ´%choice%´==´´ set choice=%choice:~0,1% 
13.
		echo choise = %choice% 
14.
		if ´%choice%´==´y´ ECHO goto COPY_FILES 
15.
		if ´%choice%´==´n´ ECHO goto END 
16.
17.
18.
 
19.
:END 
20.
pause 
21.
exit 
22.
 
23.
:ABFRAGE 
24.
set choice= 
25.
set /p choice=Do you really want to overwrite the existig files y/n [n]?  
26.
goto ANTWORT


Geht offensichtlich die Information über die Schleife und ihren Zähler verloren.
Kann mir vielleicht jemand was dazu sagen?

Vielen Dank und schöne Grüße
Mario
Mitglied: 60730
25.04.2012 um 17:08 Uhr
moin,

Zitat von Mario.Steinberg:
Hallo ich habe folgendes Problem.
  • in einer Batch Datei, die mit €cho ff beginnt? - wie kann das denn sein?

Ich möchte aus einer If-Abfrage heraus eine Variable über die Eingabeaufforderung setzten. Hier ein Beispiel:
  • Nein - "Dein" Problem ist, dass du innerhalb einer Schleife eine Variable befüllst und das geht "so" nicht. enabledelayedexpanision²²²²²
PS: eine Variable würde ich evtl. nicht so nennen, wie ein M$ Befehl, und vielleicht auch auf sowas AUFZAEHLUNG=auf1 auf2 auf3 verzichten und auf "AUFZAEHLUNG=auf1 auf2 auf3" umschwenken.

Gruß
Bitte warten ..
Mitglied: Mario.Steinberg
26.04.2012 um 08:45 Uhr
Hallo Timo,

danke! So wird nen Schuh draus:

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
set "AUFZAEHLUNG=auf1 auf2 auf3" 
05.
for %%a in (%AUFZAEHLUNG%) do ( 
06.
	if exist test.bat ( 
07.
		set EINGABE= 
08.
		set /p EINGABE=Do you really want to overwrite the existig files y/n [n]?  
09.
		if not ´!EINGABE!´==´´ set EINGABE=!EINGABE:~0,1! 
10.
		echo EINGABE = !EINGABE! 
11.
		if ´!EINGABE!´==´y´ ECHO goto COPY_FILES 
12.
		if ´!EINGABE!´==´n´ ECHO goto END 
13.
14.
15.
 
16.
:END 
17.
pause 
18.
exit
Bitte warten ..
Mitglied: 60730
26.04.2012 um 09:00 Uhr
Salü,

und wenn du dem If noch einen /i spendierst, darf der User sogar Y oder N drücken

Ps: Exit am Ende?
Nimm lieber exit /b, testet sich deutlich angenehmer.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

Datenbanken
gelöst IF Abfrage im SELECT Oracle SQL (2)

Frage von Roadrunner777 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...