PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : If zeilen bei Batch



IcE_FiGhTeR
28.08.2007, 13:26
Ich mache grade eine Bat fürs formatieren... Doch diese Bat soll mich fragen WELCHE Partetion ich formatieren soll. Wenn ich zb.: "C" eingebe das er die Partetion "C" auch formatiert und wenn "D" das er auch "D" formatiert....
Ist es möglich mit den "if" dingern da sowas zu machen? Also "if write C goto
format1" oder sowas ähnliches... Oder braucht man dafür anderen Befehlzeilenrefernzen?

Sry für die überschrift.... Mir ist nicht anderes eingefallen...
PLS Help

dominik70567
28.08.2007, 13:30
@echo off
set /p format=Welche Partition soll formatiert werden?
if format==C goto C
if format==D goto D

:C
format C:
pause > nul
exit
:D
format D:
pause > nul
exit

Bin mir net sicher aber so müsste es irgendwie gehn tests einfach mal ;)
Vllt kann hier einer noch korrigieren :roll:

jan204
28.08.2007, 13:35
ich hätte es so gemacht:


@echo off
set /p w=Welche platte formatieren?
if "%w%" == "c" goto c
if "%w%" == "d" goto d

:c
format c
pause

:d
format d
pause

ob es geht, ist fraglich, aber ich bin mir ziemlich sicher ;)
die pause hab ich rein gemacht, damit man es evtl. noch aufhalten kann, wenn man die patetion vertippt hat ;)

edit:
also der code von mir geht
da ist nur der bug drinnen, dass man von c nach d springt, aber ich glaub, dass kann man auch noch i-wie entbuggen
edit2:
@dominik70567, dein code dürfte nicht gehen
du hast die "" vergessen, und vor und hinter == keinen abstand ;)
desweiteren springt er bei dir nicht nach d

dominik70567
28.08.2007, 13:45
Ja das is bei mir auch passiert :D einfach hinter Pause bei dir exit setzen dann geht er raus ;)

jan204
28.08.2007, 13:47
Ja das is bei mir auch passiert :D einfach hinter Pause bei dir exit setzen dann geht er raus ;)

ok, dann dürfte mein code gehen
sehe edit beitrag :)

code:


@echo off
set /p w=Welche platte formatieren?
if "%w%" == "c" goto c
if "%w%" == "d" goto d

:c
format c
pause
exit

:d
format d
pause
exit

edit,
wenn du testen willst, ob es geht ohne deinen pc zu formatieren mach vor format c und d ein echo vor ;)
also z.B:

:c
echo format c
pause
exit

dann siehst du,dass es dahin springt ;)
hf

IcE_FiGhTeR
28.08.2007, 14:26
Thx leuts :)
ahja den bug kann man mit "goto" wegmachen :) thx :)

dominik70567
28.08.2007, 14:30
Thx leuts :)
ahja den bug kann man mit "goto" wegmachen :) thx :)

Ja klar kann man den mit goto wegmachen aber was bringts :roll:


@echo off
set /p w=Welche platte formatieren?
if "%w%" == "c" goto c
if "%w%" == "d" goto d

:c
format c
pause
goto end

:d
format d
pause
goto end

:end
exit

IcE_FiGhTeR
28.08.2007, 14:38
Das nach C nicht sofort D formatiert wird. THX nochmal^^ jetzt kann ich auch andere sachen erstellen :)

jan204
28.08.2007, 14:45
aber ich glaub, so geht es auch... -> noch nicht getestet ;)


@echo off
set /p w=Welche platte formatieren?
if "%w%" == "c" format c
if "%w%" == "d" format d

aber das mit goto finde ich besser ;)

f!l3st0rm
30.08.2007, 22:07
Verwende doch eine for-Schleife mit if-Abfrage:


Folgenden Code in eine Batchdatei schreiben:

@echo off
echo.
echo ...zu formatierende Partition eingeben...
echo.
set /P "u= "
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do if "%u%" == "%%i" format "%%i:" /Q /FS:NTFS
exit

(oder noch einfacher per Variable).


@echo off
echo.
echo ...zu formatierende Partition eingeben...
echo.
set /P "u= "
format "%u%:" /Q /FS:NTFS

Barny
14.09.2007, 23:04
Ich würde das so machen:

@echo off
echo Formatieren
set /p a=Welche Partition soll formatiert werden?
if %a% == C goto :format1
if %a% == D goto :format2
if not %a% == C goto :Error
if not %a% == D goto :Error
:format1
cls
format c:
goto :end
:format2
cls
format d:
goto :end
:Error
echo Falsche Datenträgerbezeichnung angegeben!
pause
goto :end
:end
quit