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, 2463 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ä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
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...