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, 2479 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 ..
Ähnliche Inhalte
C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

Batch & Shell
gelöst Get-Aduser - If then else??? (2)

Frage von MuHMuH zum Thema Batch & Shell ...

C und C++
gelöst WPF XAML Properties Get Set Verständnisfrage (4)

Frage von mayho33 zum Thema C und C ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...